如何在python客户端创建Elasticsearch数据流模板?

vxf3dgd4  于 2022-12-26  发布在  ElasticSearch
关注(0)|答案(1)|浏览(131)

如何在python的客户端上调用这个索引模板PUT?
一个在Elastic控制台上工作的PUT请求的例子:

PUT _index_template/ts_event_template
    {
      "index_patterns": [
        "ts-events"
      ],
      "data_stream": {},
      "template": {
        "settings": {
          "number_of_shards": 1,
          "number_of_replicas": 1,
          "index": {
            "lifecycle": {
              "name": "ts_policy_v1",
              "rollover_alias": "ts_events_alias"
            }
          }
        },
        "aliases": {
          "ts_events_alias": {}
        }
      }
    }

使用客户机put_template函数时失败的索引模板示例:

resp = client.indices.put_template(
    name="datastream",
    body={
        "index_patterns": ["ts-events"],
        "data_stream": {},
        "settings": {
            "number_of_shards": 1,
            "index": {
              "lifecycle": {
                "name": "ts_policy_v1",
                "rollover_alias": "ts_events_alias"
              }
           }
         },
         "aliases": {
            "ts_events_alias": {}
         }
      }
   }
)
print(resp)

这会引发data_stream字段的解析错误。
我怎样才能使它作为一个数据流索引模板工作?

uelo1irk

uelo1irk1#

旧索引put_template使用的是旧索引模板版本。
要使用最新的索引模板,应用途:

es_client.indices.put_index_template(name="index template name", body={template json here...})

相关问题