ElasticSearch:_template 与 _index_template

Jor*_*rdi 2 elasticsearch

我刚刚意识到 ES 有 a_/_template和 a _/_index_template

它们是做什么用的?

我正在使用代码:

PutIndexTemplateRequest ngramTemplate = new PutIndexTemplateRequest("ngram-template")
    .patterns(Arrays.asList("resourcetable-*", "termconcept-*"))
    .settings(Settings.builder().put("index.max_ngram_diff", 50));
Run Code Online (Sandbox Code Playgroud)

我不明白为什么我的ngram-template没有出现在_/_index_template.

之后我就看着_/_template......

它们之间有什么区别呢?

ham*_*yat 5

Elasticsearch 在 7.8 版本中从 切换_template_index_template

_template在 7.8 中已弃用,但仍然可用。如果索引同时匹配旧版模板 (_template) 和可组合模板 (_index_template),elasticsearch 将使用可组合模板。

遗留模板和可组合模板之间的主要区别在于,遗留模板是静态的,如果您想更改所有模板中的字段,则必须编辑所有模板,但新 _index_template 是模块化的,要更改所有模板中的设置,您只需更改一个组件。