Elasticsearch Java Rest Client 索引模板由两个可组合索引模板组成

Elasticsearch Java Rest Client index template composed of two composable index templates

我正在使用 Elasticsearch 中的 Java Rest 客户端寻找等效请求:

PUT myhost:9200/_index_template/my_template
{
    "index_patterns": ["my_pattern_*"],
    "template": {
      "settings": {
        "number_of_shards": 1
      }
    },
    "composed_of": ["composable_index_template1", "composable_index_template2"]
}

我使用 Groovy 想出了以下解决方案:

    def builder = new groovy.json.JsonBuilder()
    def root = builder {
        index_patterns ["my_pattern_*"]
        template{
            settings{
                number_of_shards 1
            }
        }
        composed_of ["composable_index_template1", "composable_index_template2"]
    }

    PutIndexTemplateRequest request = new PutIndexTemplateRequest("my_template")
    request = request.source(builder.getContent())

不幸的是,请求在运行时失败并显示以下消息:

Invocation of init method failed; nested exception is ElasticsearchParseException[unknown key [composed_of] in the template ]

请检查 this link 可组合索引模板: 以下是来自 link:

的示例代码
PutComposableIndexTemplateRequest request = new PutComposableIndexTemplateRequest().name("my-template"); 
ComposableIndexTemplate composableIndexTemplate = new ComposableIndexTemplate(List.of("pattern-1", "log-*"),
    null, null, null, null, null); 
request.indexTemplate(composableIndexTemplate);
assertTrue(client.indices().putIndexTemplate(request, RequestOptions.DEFAULT).isAcknowledged());