aws elasticsearch:如何将策略应用于索引

wb1gzix0  于 2021-06-14  发布在  ElasticSearch
关注(0)|答案(1)|浏览(521)

我们有一个aws elasticsearch域,正在向其写入记录/文档。我现在已经在kibana中创建了一个索引状态/生命周期管理(ism/ilm)策略,我可以从kibana中将该策略应用于索引。现在我想在从处理对索引的写入的java代码中创建索引时应用该策略(使用高级restapi)。
我在高级restapi中还没有找到专门允许将策略分配给索引的方法,但是我认为应该可以使用创建索引时使用的requestoptions对象来完成。文档很薄,但是我应该基本上能够在索引属性中插入一个键/值。例如,当我检查手动分配策略的索引时,找到以下分配策略的键。

"settings" : {
  "index" : {
    "opendistro" : {
      "index_state_management" : {
        "policy_id" : "DefaultLifeCyclePolicy_30DayWarm_180DayDelete"
      }
    },

假设我可以在索引对象中插入一个类似的键似乎是合理的。下面的代码似乎应该可以工作。它确实运行正常,但requestoptions没有任何用处。

boolean isExisting = mAwsClient.indices().exists(new GetIndexRequest(indexNameFull), RequestOptions.DEFAULT);
        if (!isExisting) {
            RequestOptions.Builder builder = RequestOptions.DEFAULT.toBuilder();
            builder.addHeader("settings.opendistro.index_state_management.policy_id", mIndexStateMgmtPolicy);
            RequestOptions requestOptions = builder.build();

            CreateIndexRequest request = new CreateIndexRequest(indexNameFull);
            request.mapping(mapping, XContentType.JSON);
            CreateIndexResponse createIndexResponse = mAwsClient.indices().create(request, requestOptions);
        }

那么,如何使用java将am ism/ilm策略分配给索引呢?
顺便说一句,我已经研究过创建索引模板,它应该在创建索引时自动分配策略,但是opendistro kibana似乎没有这个功能。

4urapxun

4urapxun1#

顺便说一句,我已经研究过创建索引模板,它应该在创建索引时自动分配策略,但是opendistro kibana似乎没有这个功能。
可以按以下方式使用索引模板在创建索引时应用ism策略:

PUT _template/template_1
{
  "index_patterns": [
    "test-index*"
  ],
  "settings": {
    "index": {
      "opendistro": {
        "index_state_management": {
          "policy_id": "DefaultLifeCyclePolicy_30DayWarm_180DayDelete"
        }
      }
    }
  }
}

对于滚动指数:
确保您有别名:

POST /_aliases
{
    "actions" : [
        { "add" : { "index" : "test-index-000001", "alias" : "test-index" } }
    ]
}

模板:

PUT _template/template_1
{
  "index_patterns": [
    "test-index*"
  ],
  "settings": {
    "index": {
      "opendistro": {
        "index_state_management": {
          "policy_id": "DefaultLifeCyclePolicy_30DayWarm_180DayDelete",
          "rollover_alias": "test-index"
        }
      }
    }
  }
}

相关问题