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


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

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

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

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

мои вопросы:

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

5 ответов:

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

сходство:

  • как в Solr и Sphinx удовлетворить все ваши требования. Они быстры и предназначены для эффективного индексирования и поиска больших объемов данных.
  • оба имеют длинный список сайтов с высоким трафиком, используя их (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, и даже быстрее на сервере. Я также использую Sphinx для ограничения поиска в местах с определенными широтами и долготами, и это очень быстро. Кроме того, как результаты ранжируются очень легко настроить. Простота установки и настройки, если Вы читаете учебник или два. Почти 1.0 статус, но их кандидатуры были солидные.

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