un1t
@un1t

Как сделать фасеты в ElasticSearch регистронезависимыми?

Есть каталог товаров, хочу сделать фасеты по брендам.

Вот так выглядит mapping:
'properties': {
                'id': {'type': 'integer'},
                'name': {'type': 'string', 'analyzer': 'russian_morphology'},
                'price': {'type': 'integer'},
                'brand': {'type': 'string', 'index': 'not_analyzed'},
            }


Фасеты строятся нормально, но проблема следующая. Один бренд можно написать по разному - "adidas", "Adidas", "ADIDAS". Соответственно в фасетах будет несколько вариантов написания. В принципе я могу их все склеить перед выводом пользователю, но поиск по этому полю чувствителен к регистру (т.к. not_analyzed). Если указать analyzer - lowercase, то тогда все фасеты будут выдаваться в одном регистре, чего тоже бы не хотелось.
  • Вопрос задан
  • 3120 просмотров
Пригласить эксперта
Ответы на вопрос 1
dmitry-polushkin
@dmitry-polushkin
Инженер программного обеспечения
Ваш ответ на вопрос

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

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