Я ищу автономный сервер полнотекстового поиска со следующими свойствами:
- Должен работать как отдельный сервер, который может обслуживать поисковые запросы от нескольких клиентов
- Должен иметь возможность выполнять «массовую индексацию» путем индексации результата запроса SQL: скажем «SELECT id, text_to_index FROM Documents;»
- Должно быть свободным программным обеспечением и должно работать на Linux с MySQL в качестве базы данных
- Должно быть быстрым (исключает внутренний полнотекстовый поиск MySQL)
Я нашел альтернативы, которые имеют эти свойства:
- Solr (по материалам Lucene)
- ElasticSearch (также основанный на Lucene)
- сфинкс
Мои вопросы:
- Как они сравниваются?
- Я пропустил какие-либо альтернативы?
- Я знаю, что каждый случай использования отличается, но есть ли определенные случаи, когда я определенно не хотел бы использовать определенный пакет?
Ответы:
Я успешно использую Solr уже почти 2 года, и никогда не использовал Sphinx, поэтому я явно предвзят. Однако я постараюсь сохранить объективность, цитируя документы или других людей. Я также приму патчи к моему ответу :-)
сходства:
Вот некоторые отличия:
java -jar start.jar
). Сфинкс не имеет дополнительной конфигурации.Смежные вопросы:
источник
Если вам не нужно расширять функциональность поиска любым запатентованным способом, Sphinx - ваш лучший выбор.
Преимущества сфинкса:
Преимущества Solr:
источник
Примечание: есть много пользователей с таким же вопросом.
Итак, чтобы ответить на вопрос:
Который и почему?
Используйте Solr, если вы собираетесь использовать его в своем веб-приложении (пример поисковой системы сайта). Это определенно получится здорово благодаря его API. Вам определенно понадобится эта сила для веб-приложения.
Используйте Sphinx, если вы хотите быстро найти тонны документов / файлов. Он тоже очень быстро индексирует. Я бы порекомендовал не использовать его в приложении, которое использует JSON или синтаксический анализ XML для получения результатов поиска. Используйте его для прямого поиска в дБ. Отлично работает на MySQL.
альтернативы
Хотя это гиганты, их гораздо больше. Кроме того, есть те, которые используют их для питания своих пользовательских платформ. Итак, я бы сказал, что вы действительно не пропустили ни одного. Хотя есть один поиск, который имеет хорошую базу пользователей.
источник
Я использую Sphinx уже почти год, и это было удивительно. Я могу проиндексировать 1,5 миллиона документов примерно за минуту на моем MacBook, и даже быстрее на сервере. Я также использую Sphinx, чтобы ограничить поиск местами в определенных широтах и долготах, и это очень быстро. Кроме того, то, как ранжируются результаты, очень легко настраивается. Простота установки и настройки, если вы прочитали учебник или два. Почти 1.0 статус, но их Кандидаты в Релиз были твердыми.
источник
Похоже, что Lucene / Solr более активны и имеют долгие годы в бизнесе и гораздо более сильное сообщество пользователей. imho, если вы можете преодолеть начальные проблемы с настройкой, как некоторые, возможно, сталкивались (не мы), то я бы сказал, что Lucene / Solr - ваш лучший выбор.
источник