首页 > 解决方案 > 弹性搜索:_template 与 _index_template

问题描述

我刚刚意识到 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));

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

在那之后,我一直在看_/_template......

它们之间有什么区别?

标签: elasticsearch

解决方案


Elasticsearch 从 7.8 版切换_template_index_template

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

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


推荐阅读