Что выбрать для мультиязычного поиска solr, sphinx, elastic или что еще?
Обязательное условие поддержка русского, английского и азиатских языков (китайский, корейский, японский). Решили сделать общение с сервисом средствами REST API.
Данные будут валиться в индекс с некоторой периодичностью от нескольких пользователей.
Есть опыт использования Sphinx и Solr.
У первого отличная скорость и качество поиска на русском языке, используя леммы, но "сложности" с перестройкой индекса. Не сказать чтобы непреодолимые, но значительно лучше чтобы все операции были скрыты от конечного пользователя системы безо всяких ночных перестроений индекса и прочего (знаю про rt и delta-индексы). Не использовал sphinx для поиска по нескольким языкам.
У второго rest api из коробки (как и у elastic), работа с русским и прочими языками по стемме. Скорость поиска и индексации ниже чем у Sphinx, но не нужно каждый раз перестраивать, мержить индекс, для меня это огромный плюс. Не использовал Solr для поиска по нескольким языкам.
Вот Вы говорите, что работали со Sphinx, давайте будем отталкиваться от этого. По Вашему сообщению я сделал вывод, что единственное, что Вас останавливает в Sphinx - мнимая необходимость остановки сервиса и перестроение индексов. Спешу Вас обрадовать - этого делать не надо. Советую внимательно изучить официальную документацию(желательно от корки до корки, она не такая большая, как может показаться) и познакомиться с удивительным миром delta-index и rt-index. Они позволят Вам забыть остановку сервиса для перестроения индексов как страшный сон. Другое дело, что с ними не все в порядке, о чем так же подробно написано в документации.
Спасибо большое за Ваш ответ. Работал со Sphinx через C API, по этой причине rt-индексы не трогал ранее (они доступны только через SphinxQL). Сейчас, как раз, остановился на Sphinx и rt-индексах и весь необходимый функционал реализовал, единственное не средствами REST API, а SQL-подобное API. Спасибо.