我的代码是:
PutIndexTemplateRequest ngramTemplate = new PutIndexTemplateRequest("ngram-template")
.patterns(Arrays.asList("resourcetable-*", "termconcept-*"))
.settings(Settings.builder().put("index.max_ngram_diff", 50));
RestHighLevelClient elasticsearchHighLevelRestClient = ElasticsearchRestClientFactory.createElasticsearchHighLevelRestClient(qualifiedHost, port, theUsername, thePassword);
AcknowledgedResponse acknowledgedResponse = elasticsearchHighLevelRestClient.indices().putTemplate(ngramTemplate, RequestOptions.DEFAULT);
assert acknowledgedResponse.isAcknowledged();
此代码是 perfermod 没有问题。
但是,当我尝试列出所有索引模板时,我的索引模板没有出现。
$ curl -s http://localhost:9200/_index_template`
{
"index_templates": [
{
"name": "metrics",
"index_template": {
"index_patterns": [
"metrics-*-*"
],
"composed_of": [
"metrics-mappings",
"metrics-settings"
],
"priority": 100,
"version": 0,
"_meta": {
"managed": true,
"description": "default metrics template installed by x-pack"
},
"data_stream": {}
}
},
{
"name": "logs",
"index_template": {
"index_patterns": [
"logs-*-*"
],
"composed_of": [
"logs-mappings",
"logs-settings"
],
"priority": 100,
"version": 0,
"_meta": {
"managed": true,
"description": "default logs template installed by x-pack"
},
"data_stream": {}
}
}
]
}
有什么想法吗?
答案 0 :(得分:1)
我在使用适用于 Elasticsearch 7.10.2 版的 Rest 高级客户端时遇到了同样的问题。
当我记录请求的 URL 时,我可以看到 PutIndexTemplateRequest
使用 API _template
而不是 _index_template
,当稍后通过 {{1 创建索引时显然会被忽略}}。
解决方案是使用 PutComposableIndexTemplateRequest:
CreateIndexRequest