Elasticsearch · Elasticsearch 8.19.12
В индексе products поле brand размечено как text с подполем brand.raw типа keyword — так делают, чтобы бренд искался по словам и одновременно годился для фасета.
Фронтенд фасета «Бренд» шлёт {"term": {"brand": "New Balance"}} и получает пустую выдачу, хотя кроссовки New Balance в каталоге есть.
Нужен запрос, который вернёт все товары ровно бренда «New Balance» (без «New Era» и «Balance Pro»), по возрастанию price_rub.
В работе: Фасетный фильтр в каталоге маркетплейса: клик по бренду в левой колонке.
Источник: доклад команды поиска OZON «Синонимы и анализаторы: наш кейс использования», Elasticsearch Moscow meetup, 2019. Условие пересказано своими словами.
Какой запрос вернёт товары бренда «New Balance» по возрастанию цены?
- term по brand
- term по brand.raw
- match по brand
- term по brand.raw в нижнем регистре