Установка свойства index для всех подполей поля
Когда я пытаюсь добавить термины, я сталкиваюсь с проблемой, что термины разбиваются на отдельные слова. Например, если атрибут (поле) Kind
имеет значения medium kind of shirt
а также large kind of shirt
Термины становятся - medium
, large
, kind
, of
, shirt
,
Чтобы исправить это, было предложено изменить отображение, чтобы включить "index": "not_analyzed"
для каждого поля атрибута. Проблема в том, что отображение генерируется динамически, например:
"attributes": {
"properties": {
"kind": {
"type": "string"
},
"color": {
"type": "string"
},
"size": {
"type": "string"
}
}
}
Просто настройка "not_analyzed"
немного внутри "attributes"
не будет делать. Есть ли способ установить атрибут индекса для каждого подполя внутри attributes
поле?
1 ответ
Благодаря комментарию Андрея я смог понять, как применить настройки.
Я добавил dynamic_templates
раздел моего отображения следующим образом:
"dynamic_templates": [
{
"string_template": {
"path_match": "attributes.*",
"match_mapping_type": "string",
"mapping": {
"type": "string",
"index": "not_analyzed"
}
}
}
]
Это делает свое дело, и теперь каждое подполе с "string"
Тип имеет свои "index"
установка как "not_analyzed"
, Условия больше не маркируются.