Elasticsearch игнорирует сопоставления моего шаблона индекса при создании нового индекса

#elasticsearch

Вопрос:

Независимо от того, что я делаю, когда индекс создается с помощью процесса сердцебиения (7.10.2), Elasticsearch отображает все поля и monitor.id будет похоже:

 GET /heartbeat-7.10.2-2021.05.25
[...]
         "monitor" : {
          "properties" : {
            "id" : {
              "type" : "text",
              "fields" : {
                "keyword" : {
                  "type" : "keyword",
                  "ignore_above" : 256
                }
              }
            },
[...]
 

даже если я удалю индекс, шаблон и обновлю шаблон как:

 {
    "order" : 1,
    "index_patterns" : [
      "heartbeat-7.10.2-*"
    ],
    "settings" : {
    },
    "mappings" : {
      "dynamic": false,
      "properties" : {
        "monitor" : {
          "properties" : {
            "id" : {
              "ignore_above" : 1024,
              "type" : "keyword"
            }
          }
        }
      }
    },
    "aliases" : { }
  }
 

Похоже, что конфигурация шаблона игнорируется.
Другого шаблона сердцебиения не существует.
Это проблематично, потому что таким образом я не могу использовать, например monitor.id для агрегирования. Это проблема с несколькими полями.

Я относительно новичок в шаблонах, так что, возможно, я что-то упускаю.

Комментарии:

1. Можете ли вы показать, что вы получаете от GET _cat/templates?v этого ?

Ответ №1:

Так что, по-видимому, у меня были как _template, так и _index_template, и _index_template имел приоритет

После

 delete _index_template/heartbeat*
 

это работает просто отлично.