darakanoit
@darakanoit

Как правильно построить поиск на сайте(Laravel + elasticsearch)?

Имеется монолитное приложение на laravel, эластик 5 версии, в данный момент поиск реализован так, что ищет по конкретным моделям в laravel(строит на основе этого типы в индексе со всеми полями в том числе и meta инфой - seo_url, slug etc) и через обёртку в виде laravel scout строит запрос по всем полям типа.
Из первой проблемы, которую я нашёл, что полное несогласованность данных, где-то поля указаны как name_ru\name_en, где-то просто title внутри которого либо json с {ru:} где-то просто текст, и необходимо искать в соответствии с нужной локалью на портале.
Из второй проблемы, я не понимаю как сделать поиск сразу по всем типам, чтобы поиск был релевантный, а не мерджился как разные поиски по разным типам(моделькам) из-за чего возникает ощущение нерелевантности поиска в целом.
Отсюда хочу спросить у вас, как корректнее всего построить поиск? Быть может есть совет как разрулить из имеющихся вводных.
  • Вопрос задан
  • 258 просмотров
Пригласить эксперта
Ответы на вопрос 1
2ord
@2ord
где-то поля указаны как name_ru\name_en
почему не одно поле? Пользователь ищет на любом языке и Эластик просто находит по запросу.

где-то просто title внутри которого либо json с {ru:} где-то просто текст, и необходимо искать в соответствии с нужной локалью на портале.
ну так приведи к нужному виду поля, чтобы был просто текст, безо всяких JSON в теле поля.

Эти болячки нужно решать в Ларавел, а не Эластиком.

я не понимаю как сделать поиск сразу по всем типам
https://www.elastic.co/guide/en/elasticsearch/refe...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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