[英]Elasticsearch: Index template not found
我的代碼是:
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": {}
}
}
]
}
有任何想法嗎?
我在使用 Elasticsearch 版本 7.10.2 的 Rest 高級客戶端時遇到了同樣的問題。
當我記錄請求的 URL 時,我可以看到PutIndexTemplateRequest
使用 API _template
而不是_index_template
,稍后通過CreateIndexRequest
創建索引時顯然會被忽略。
解決方案是使用PutComposableIndexTemplateRequest :
PutComposableIndexTemplateRequest request =
new PutComposableIndexTemplateRequest().name(INDEX_TEMPLATE_NAME);
Settings settings = Settings.builder()
.loadFromSource(MY_SETTINGS_JSON_STRING, XContentType.JSON).build();
Template template = new Template(settings, null, null);
ComposableIndexTemplate composableIndexTemplate =
new ComposableIndexTemplate(List.of("my-index-pattern"),
template, null, null, null, null);
request.indexTemplate(composableIndexTemplate);
try {
client.indices().putIndexTemplate(request, RequestOptions.DEFAULT);
}
} catch (IOException e) {
// handle error
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.