Полностью текстовый поиск MongoDB против Lucene?

Каким образом полный текстовый поиск MongoDB сравнивается с Lucene в настоящее время? Причина этого вопроса связана с моей неопределенностью:

a) использовать mongo FTS в производстве, поскольку он все еще находился в стадии бета-тестирования около 6 месяцев назад

и

b), поскольку lucene использует Java, которая представит еще одну движущуюся часть.

Ответ 1

Без блуждания по длинной теме, которая, вероятно, не подходит для форума по программированию, я постараюсь в основном покрыть это, но все-таки попытаюсь прикрыть точки.

Главное, что следует учитывать при переходе к широкому сравнению, заключается в следующем: "Как" полный текстовый поиск "для реляционной базы данных" XYZ "стекается против Lucene".

Итак, если вы считаете это, и у вас есть опыт со встроенными возможностями "полного текста" этих продуктов, то это те, которые вы должны сравнивать с явными "полнотекстовыми" ящиками MongoDB.

Короче говоря, MongoDB предлагает базовые полнотекстовые возможности, не сильно отличающиеся от тех, которые встречаются в реляционных продуктах. Как упоминалось в a:), объекты новы, но лучше, чем раньше, что было нечем.

В b:), Lucene и производные/аналоги (Solr/ElasticSearch и т.д.) следует рассматривать как совсем другое животное. Где вам требуется продвинутый токенизация и создание, встроенные средства для "Больше похоже на это" и фасет рассчитывает на поиск. В этих случаях отдельный продукт является необходимой необходимостью.

Конечно, есть несколько решений для индексирования данных из магазинов MongoDB в Lucene и т.д., и даже настроить этот процесс не сложно. Но он поддерживает другую движущуюся часть вашей инфраструктуры.

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

Единственное, что нужно добавить, это то, что семейство Lucene (и производных) - отличные продукты. Не уклоняйтесь от того, чтобы дать им поход, по крайней мере, оценить. Точки, которые были раньше, там намного больше, чем любой "Стандартный поиск текста базы данных". Кроме того, кривая администрирования и обучения обычно "не такая сложная, как вы думаете". Имейте игру, это может быть целесообразно реализовать.

Ответ 2

Короче говоря: Да, Lucene (Solr/ElasticSearch) - еще одна движущаяся часть. И вы должны знать, что я ненавижу добавлять движущиеся части в свою систему. Я делаю все, чтобы избежать этого. Но если вы хотите поддерживать поиск в своем приложении, который немного отличается от простого (простого!) Полнотекстового поиска , вам нужна Lucene. Я обещаю вам, когда вы привыкнете к этому, вы никогда (никогда!) Не пропустите его снова.

Итак, простая рекомендация: попробуйте! Вы не пожалеете об этом.