Лучший способ поиска по ключевым словам Amazon SimpleDB с использованием EC2 и Asp.Net? - PullRequest
5 голосов
/ 10 апреля 2009

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

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

1) Добавьте ключевые слова к многозначному атрибуту и ​​выполните поиск по запросу, например: выберите id из keywordTable, где keyword = 'firstword' ключевое слово пересечения = 'secondword' ключевое слово пересечения = 'thirdword'

Пример Amazon Query

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

Катта на EC2

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

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

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

Ответы [ 3 ]

1 голос
/ 28 сентября 2010

Просто чтобы разобраться в этом вопросе ... Мы решили использовать провайдера 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, это имеет для нас наибольшее значение.

1 голос
/ 13 октября 2010

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

Подход к полнотекстовой индексации описан здесь .

1 голос
/ 01 июня 2009

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

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

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

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

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

...