Solr vs Elasticsearch о поиске почти в реальном времени

Я запутался с поисковой способностью Solr и Elasticsearch почти в реальном времени. Предполагается, что поиск почти в реальном времени является одним из преимуществ Elasticsearch перед Solr. Тем не менее, я прочитал некоторые документы Solr, в которых говорится, что поиск в режиме реального времени также может быть выполнен на Solr с помощью мягкого коммита со стоимостью открытия нового поисковика. При этом новый документ виден через 1 секунду. В Elasticsearch обновление также может сделать новый документ доступным для поиска в течение одной секунды. Я что-то пропустил или неправильно понял? Какой из них лучше при поиске в реальном времени? Любой ответ будет оценен. Спасибо.

1 ответ

Решение

В конце дня они оба используют люцен под капотом. Поиск в режиме реального времени в lucene означает повторное открытие считывателя индексов, который называется refresh в эластичном поиске и доступен через API обновления.

С другой стороны, вам также необходимо зафиксировать индекс lucene, чтобы иметь долговечность, что является дорогостоящим и не может выполняться каждую секунду, и именно поэтому эластичный поиск имеет журнал транзакций и что делает эластичный поиск "убить -9 безопасным", а также позволяет в режиме реального времени получить.

Но самое приятное для меня в том, что в эластичном поиске пользователю не нужно беспокоиться об обновлениях и фиксации слишком много, поскольку по умолчанию все происходит автоматически под капотом. В то же время, есть apis (обновление и сброс), а также настройки, которые позволяют изменить поведение по умолчанию для опытных пользователей.

Другие вопросы по тегам