elasticsearch - 弹性搜索:_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 从 7.8 版切换_template
到_index_template
。
_template
在 7.8 中已弃用,但仍然可用。如果索引同时匹配旧模板 (_template) 和可组合模板 (_index_template),elasticsearch 将使用可组合模板。
旧版模板和可组合模板之间的主要区别在于旧版模板是静态的,如果要更改所有模板中的字段,则必须编辑所有模板,但新的 _index_template 是模块化的,并且要更改所有模板中的设置,您只需更改一个组件。