Выбор автономного сервера полнотекстового поиска: Sphinx или SOLR? [закрытый]

Я ищу автономный сервер полнотекстового поиска со следующими свойствами:

  • должны работать как автономный сервер, который может обслуживать запросы от нескольких клиентов
  • должен быть в состоянии сделать "массовую индексацию" путем индексирования результата SQL-запроса: скажите " выберите id, text_to_index из документов;"
  • должно быть свободным программным обеспечением и должно работать на Linux с MySQL в качестве базы данных
  • должен быть быстрым (исключает внутренний MySQL полнотекстовый поиск)

альтернативы, которые я нашел, имеют следующие свойства:

  • Solr (на основе Люсена)
  • ElasticSearch (также на основе Lucene)
  • Сфинкс

мои вопросы:

  • как они соотносятся?
  • я пропустил какие-либо альтернативы?
  • Я знаю, что каждый случай использования отличается, но есть ли определенные случаи, когда я определенно не хотите использовать определенный пакет?

5 ответов


Я успешно использую Solr уже почти 2 года и никогда не использовал Sphinx,поэтому я, очевидно, предвзят. Однако я постараюсь сохранить объективность, цитируя документы или других людей. Я также возьму патчи к моему ответу: -)

сходство:

  • и Solr и Сфинкс удовлетворяют все ваши требования. Они быстры и предназначены для эффективного индексирования и поиска больших объемов данных.
  • оба имеют длинный список сайтов с высоким трафиком, используя их (Solr, Сфинкс)
  • оба предлагают коммерческую поддержку. (Solr, Сфинкс)
  • оба предлагают привязки API клиента для нескольких платформ / языков (Сфинкс, Solr)
  • оба можно распределить для увеличения скорости и емкости (Сфинкс, Solr)

вот некоторые различия:

вопросы:


Если вам не нужно расширить функциональность поиска каким-либо собственническим способом, Sphinx-ваш лучший выбор.

Сфинкс преимущества:

  1. разработка и настройка быстрее
  2. гораздо лучше (и быстрее) агрегации. Для нас это было убийственно.
  3. не XML. Это то, что в конечном счете исключило Solr для нас. Мы должны были вернуть довольно большие результирующие наборы (думаю, сотни результатов), а затем агрегировать их сами, так как агрегация Solr была недостающий. Количество времени для сериализации в XML и из XML просто абсолютно убивает производительность. Для небольших наборов результатов, это было прекрасно.
  4. лучшая документация, которую я видел в приложении с открытым исходным кодом

преимущества Solr:

  1. может быть продлен.
  2. может попасть прямо из веб-приложения, т. е. вы можете иметь автозаполнение, как поиск ударил сервер Solr непосредственно через AJAX.

Примечание: есть много пользователей с таким же вопросом в голове.

Итак, чтобы ответить на вопрос:

что и почему?

  • использовать Solr если вы собираетесь использовать его в своем веб-приложении(пример-поисковая система сайта). Это, безусловно, окажется отличным, благодаря его API. Вам определенно понадобится эта сила для веб-приложения.

  • использовать Сфинкс если вы хотите искать через тонн документов/файлов очень быстро. Он индексирует очень быстро. Я бы рекомендовал не использовать его в приложении, которое включает JSON или синтаксический анализ XML для получения результатов поиска. Используйте его для прямого поиска БД. Он отлично работает на MySQL.

варианты

хотя это гиганты,есть еще много. Кроме того, есть те, которые используют их в своих пользовательских рамок. Так что я бы сказал, что ты ничего не пропустил. Хотя есть один elasticsearch это имеет хорошую базу пользователей.


Я использую Сфинкс уже почти год, и это было удивительно. Я могу индексировать 1,5 миллиона документов примерно за минуту на моем MacBook и еще быстрее на сервере. Я также использую Сфинкс, чтобы ограничить поиск местами в определенных широтах и долготах, и это очень быстро. Кроме того, как результаты ранжируются очень tweakable. Простота установки и установки, если Вы читаете учебник или два. Почти 1.0 статус, но их кандидатуры были солидные.


Lucene / Solr, как представляется, более признакам и с более длительными годами в бизнесе и гораздо более сильным сообществом пользователей. imho если вы можете пройти мимо первоначальных проблем установки, как некоторые, похоже, столкнулись (не мы), то я бы сказал, что Lucene / Solr-ваш лучший выбор.