Elasticsearch:未找到索引模板

时间:2021-05-31 06:48:07

标签: elasticsearch

我的代码是:

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": {}
      }
    }
  ]
}

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我在使用适用于 Elasticsearch 7.10.2 版的 Rest 高级客户端时遇到了同样的问题。

当我记录请求的 URL 时,我可以看到 PutIndexTemplateRequest 使用 API _template 而不是 _index_template,当稍后通过 {{1 创建索引时显然会被忽略}}。

解决方案是使用 PutComposableIndexTemplateRequest

CreateIndexRequest
相关问题