Установка свойства 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", Условия больше не маркируются.

Другие вопросы по тегам