ElasticSearch vs SQL Полнотекстовый поиск

Я хочу использовать полнотекстовый поиск в моем проекте... Может ли кто-нибудь объяснить мне, в чем разница между ElasticSearch и SQL Full Text Search

или

почему SQL Full Text Search лучше (хуже), чем эластичный?

документация, презентации, схема...

Ответ 1

Определить "лучше"... Полнотекстовый поиск sql довольно тривиален, чтобы получить работу (индексирование и запрос), но у него есть штрафы:

  • очень мало (практически нет) контроля над тем, как индексируются вещи (что такое ключи индекса, какие лексеры/стволовые/и т.д. и т.д.).
  • выполняется на сервере sql - обычно это наименее масштабируемая инфраструктура.

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