Я не могу понять как используют elasticsearch на сайтах, например, интернет магазин. Я знаю что elasticsearch это хранилище документов в формате json.
В статьях пишут, что elasticsearch используется для быстрого и релевантного поиска (один из кейсов).
Поясните, пожалуйста, на примере Laravel + elasticsearch для поиска на сайте такие моменты.
Правильно ли я понимаю алгоритм поиска:
- Например, у нас есть каталог товаров в базе даных MySQL и все эти товары проиндексированы в elasticsearch.
- Пользователь передает строку в запросе (например, "красные трусы") и на беке идет поиск в elasticsearch и в результате мы получаем список документов где встречается ключ "красные трусы".
- Далее мы берем список ID найденых документов и на основе этого списка по ID выбираем товары из MySQL (например, через eloquent ORM) .
- Передаем на фронт коллекцию моделей eloquent?
Если этот алгоритм правильный, то на много ли такой поиск превосходит по скорости обычный поиск без elasticsearch?