Используйте lucene для хранения индексированных метаданных или Amazon SimpleDB? - PullRequest
0 голосов
/ 16 декабря 2011

Я проектирую веб-решение, которое принимает загруженные файлы и помещает их на S3. При загрузке файлов пользователи могут добавлять метаданные для целей индексации и архивирования. Я планировал использовать Lucene для этой цели, поскольку я использовал его много раз ранее, но также заметил, что Amazon SimpleDB предлагает сервис метаданных объекта для S3.

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

Требования заключаются в том, что пользователям необходимо будет осуществлять поиск по Ajax при вводе веб-интерфейса, который может предоставить Lucene, но SimpleDB также может делать Что бы я получал / терял, используя индексирование SimpleDB над Lucene в этом приложении с ограниченной областью действия?

Спасибо за ваши знания.

1 Ответ

1 голос
/ 19 декабря 2011

Я использовал SimpleDB для чего-то подобного.Преимущество, помимо нулевого обслуживания, заключается в том, что SimpleDB масштабируется, по существу, до бесконечности.Это действительно только преимущество, если вы хотите спроектировать для возможности очень высокого трафика.

Основные недостатки SimpleDB для этого я вижу:

  • Более высокая задержка,SimpleDB разработан для огромной масштабируемости и высокой доступности.Компромисс заключается в том, что запросы имеют умеренную задержку - выше, чем у «локального» нераспределенного сервиса, такого как Lucene, или с использованием функций текстового поиска в РСУБД.

  • Менее гибкий текстовый поиск,Простая БД в основном имеет SQL-подобный синтаксис запроса, который поддерживает обычный =,! =,>, <И т. Д., А также LIKE, где подстановочный знак «%» может появляться либо в начале строки, в конце строки, либо в обоих случаях.(например, "% ключевое слово%").Нет способа искать регулярные выражения или более сложные шаблоны (кроме того, что вы можете сделать, комбинируя операторы с AND / OR).<em> Примечание: условие LIKE, ранее поддерживавшее только «%» в конце строки - ограничение, которое вы можете видеть в Интернете, но которого больше нет.

SimpleDB также использует модель «возможной согласованности» по умолчанию (обновления могут занять некоторое время - иногда 10 с, - чтобы они постоянно отображались).Это является следствием масштабируемости, которой нельзя избежать.Однако я сомневаюсь, что это будет проблемой для вашего варианта использования.

...