Выбор автономного сервера полнотекстового поиска:Сфинкс или СОЛР?[закрыто]

StackOverflow https://stackoverflow.com/questions/1284083

Вопрос

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

  • Должен работать как автономный сервер, который может обслуживать поисковые запросы от нескольких клиентов
  • Должен иметь возможность выполнять "массовую индексацию" путем индексации результата SQL-запроса:скажите "ВЫБЕРИТЕ идентификатор, text_to_index ИЗ documents;"
  • Должно быть свободным программным обеспечением и должно запускаться в Linux с MySQL в качестве базы данных
  • Должно быть быстрым (исключает внутренний полнотекстовый поиск MySQL)

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

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

Мои вопросы:

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

Решение

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

Сходства:

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

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

Сопутствующие вопросы:

Другие советы

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

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

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

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

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

Примечание:Есть много пользователей, у которых на уме один и тот же вопрос.

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

Что именно и почему?

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top