Лучший способ поиска по ключевым словам в Amazon SimpleDB с использованием EC2 и Asp.Net?

Мне интересно, есть ли у кого-нибудь мысли о том, как лучше всего выполнять поиск по ключевым словам в Amazon SimpleDB из приложения EC2 Asp.Net.

Пара вариантов, которые я рассматриваю:

1) Добавьте ключевые слова в атрибут с несколькими значениями и выполните поиск с помощью запроса, например: выберите идентификатор из таблицы ключевых слов, где ключевое слово = «первое слово» пересечение ключевое слово = «второе слово» ключевое слово пересечения = «третье слово»

Пример запроса Amazon

2) Создайте интерфейс веб-сервиса для Katta:

Катта на EC2

3) Служба обновлений Lucene.Net с очередями, которая периодически отправляет индекс Lucene в облако. (чтобы обойти проблему блокировки)

Балансировка нагрузки Lucene (сообщение StackOverflow)

Lucene на S3 (запись в блоге)


person josefresno    schedule 10.04.2009    source источник


Ответы (3)


Если вы ищете исключительно решение SimpleDB (согласно заданному вопросу), Katta и Lucene вам не помогут. Если вы ищете просто решение, основанное на «инфраструктуре Amazon», то подойдет любой из вариантов.

Все три варианта различаются по объему настройки и управления, который вам придется выполнять, и решение о том, какой из них лучше, зависит от ваших реальных требований.

SimpleDB с многозначным атрибутом Keyword — ваш лучший выбор, если вам нужна простота и минимальное администрирование. И если не нужно сортировать по релевантности. Вам не нужно ничего настраивать или администрировать, и вы будете платить только за ваш фактический процессор и пропускную способность.

Lucene — отличный выбор, если вам нужно больше, чем поиск по ключевым словам, но вам придется самостоятельно управлять обновлениями индекса. Вам также придется управлять балансировкой нагрузки, резервным копированием и аварийным переключением, которые вы бы получили с SimpleDB. Если вы не заботитесь об аварийном переключении и можете терпеть время простоя, пока вы выполняете восстановление в случае сбоя EC2, тогда на одну проблему меньше, и на одну причину меньше, чтобы предпочесть SimpleDB.

С Katta на EC2 вы будете управлять всем самостоятельно. У вас будет наибольшая гибкость и больше всего работы.

person Mocky    schedule 01.06.2009
comment
спасибо Mocky, я все больше и больше смотрю на то, чтобы не внедрять строгое решение SimpleDB. Он слишком ограничен. Удивительно, что на AWS доступно не так много решений для полнотекстового поиска. Особенно, когда сайт находится на эластичной балансировке нагрузки. - person josefresno; 23.06.2009

Просто чтобы разобраться с этим вопросом... В итоге мы использовали провайдера Lightspeed SimpleDB, Solr и SolrNet, написав пользовательский поисковый провайдер для Lightspeed.

Информация о реализации интерфейса ISearchEngine для Lightspeed: http://www.mindscape.co.nz/blog/index.php/2009/02/25/lightspeed-writing-a-custom-search-engine/

И это библиотека Solr, которую мы используем: http://code.google.com/p/solrnet/

Поскольку Solr можно легко масштабировать с помощью машин EC2, это имело для нас наибольший смысл.

person josefresno    schedule 28.09.2010

Simple Savant — это библиотека сохраняемости .NET с открытым исходным кодом для SimpleDB, которая включает встроенную поддержку полнотекстового поиска с использованием Lucene.NET (я — создатель Simple Savant).

Подход к полнотекстовому индексированию описан здесь.

person Ashley Tate    schedule 13.10.2010