atis2345
@atis2345
PHP developer

Как лучше создать поиск для сайта используя MySql + ElasticSearch?

И так сразу к делу.
Необходимо создать поиск товаров на сайте.
ES ищет по названиям, Mysql фильтрует данные по дополнительным фильтрам указанным юзером.
Все бы хорошо. Но. Как это дело мапить?
Тянуть из ES десять тысяч id и добавлять в Sql запрос не очень хочется.
Хранить все фильтры в ES тоже особого желания нет.
Реально это все дело красиво смапить и превратить в выдачу?
Сервис работает на Yii2 но официальный екстеншен не юзается ( у нас ES 5.0 ).

PS: данных 10м. В скором времени будет до 100м.
  • Вопрос задан
  • 1601 просмотр
Решения вопроса 3
al_gon
@al_gon
Обычно в таких сценариях всё лежит в поисковом движке. Всё это поля для поиска и id самого товара. Больше этого не надо.
Идет запрос к ES обычно страничный, находятся Id's идет запрос к SQL и вытаскиваются все нужные поля, часто между ES и SQL есть кэш.

Как упаковать в Yii2, это отдельный вопрос (коим не владею), скорее всего вам понадобится позже фасетированние и автокомплит.
Ответ написан
atis2345
@atis2345 Автор вопроса
PHP developer
Решил сделать так:
Все данные необходимые для фильтрации буду хранить в ES.
Необходимые данные подтягивать из MySql (картинки, отзывы, etc ).
В мускле будет храниться полный набор для фильтрации товаров. На всякий.
При изменении которых буду апдейтить индекс в еластике.
Ответ написан
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Кладете все данные в ES, и агрегациями делаете и фильтры и ищете. А уж если так хочется и MYSQL, то в нем можно например пользователей хранить, только не пойму, нафига оно нужно, если есть ES.
distinctplace.com/2014/07/29/build-zappos-like-pro...
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
dimonchik2013
@dimonchik2013
non progredi est regredi
sphinx + MVA + Facet

но вы продолжайте с Эластиком )))
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы