Выбор отдельного сервера полнотекстового поиска: Sphinx или SOLR?

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

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

Я нашел альтернативы, которые имеют эти свойства:

  • Solr (по материалам Lucene)
  • ElasticSearch (также основанный на Lucene)
  • сфинкс

Мои вопросы:

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

5 ответов

Решение

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

сходства:

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

Вот некоторые отличия:

Смежные вопросы:

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

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

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

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

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

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

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

Который и почему?

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

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

альтернативы

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

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

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

Другие вопросы по тегам