Sphinx или ElasticSearch?

На сайте необходимо реализовать полнотекстовый поиск по документам с учетом морфологии. 500gb текстовых файлов (.txt), вес одного файла не превышает 5mb. Кодировка файлов UTF-8. Ежедневно прибавляется примерно по 100mb и примерно столько же удаляется. Большинство файлов на руссом языке. Нагрузка примерно 40-70 запросов в минуту.

Что лучше использовать для решения этой задачи. Сейчас рассматриваем Sphinx и ElasticSearch. Подскажите какой поисковый движок справится с этой задачей лучше? Какие у них слабые места? Какие проблемы могут возникнуть?
  • Вопрос задан
  • 4146 просмотров
Решения вопроса 1
dizballanze
@dizballanze
Software developer at Yandex
ElasticSearch очень гибкий, т.к. позволяет менять схему данных в процессе работы и имеет огромное количество других фич. Общаться с ним нужно при помощи REST Api с обменом данными в формате JSON.
Sphinx же достаточно простой, все конфигурации прописываются в файле (в том числе схема данных) и потом с ним можно работать используя некую надстройку над SQL.
ИМХО, в вашем случае ES будет избыточен и я бы посоветовал выбирать Sphinx.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
un1t
@un1t
Для вашей задачи подойдет и то и другое. Sphinx быстрее индексирует и жрет меньше памяти, Elasticsearch более гибок, умеет строить всякие фасеты и прочие агрегации, может индексировать массивы, вложенные поля и прочее. В вашем случае я бы тоже порекомендовал Sphinx, т.к. первоначально проиндексировать 500 гб на Elasticsearch будет очень долго.
Ответ написан
Комментировать
opium
@opium
Просто люблю качественно работать
оба справятся
в разрезе вашей задачи никаких
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы