簡體   English   中英

Elasticsearch:未找到索引模板

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM