【问题标题】:Elasticsearch bulk upsert with query on specific field对特定字段进行查询的 Elasticsearch 批量更新
【发布时间】:2023-04-02 16:48:01
【问题描述】:

这个映射有一个索引:

"data": {
   "type": "object"
},
"modified_date": {
   "type": "date"
},
"uid": {
   "type": "keyword"
}

现在我想对 upsert 进行批量操作(如果存在则更新,如果不存在则插入)。查询位于uid 字段上。我写了这个查询,但它不起作用。

URL : http://host/index/_bulk
METHOD : POST
DATA :
{"update":{"uid":"123"}}
{"doc":{"modified_date":"...", "data":{"array":[1,2,3]}}, "doc_as_upsert":true}
{"update":{"uid":"456"}}
{"doc":{"modified_date":"...", "data":{"array":[4,5,6]}}, "doc_as_upsert":true}
{"update":{"uid":"789"}}
{"doc":{"modified_date":"...", "data":{"array":[7,8,9]}}, "doc_as_upsert":true}

如何在 uid 字段上进行批量更新插入?

【问题讨论】:

    标签: elasticsearch bulkinsert bulkupdate


    【解决方案1】:

    如果您将操作从 update 更改为 insert,您将进行更新插入。

    https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html

    index 和 create 操作期望下一行有一个源,并且与标准索引 API 中的 op_type 参数具有相同的语义:如果目标中已经存在具有相同 ID 的文档,则创建失败,index根据需要添加或替换文档。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-02
      • 2021-03-14
      • 1970-01-01
      • 2017-06-16
      • 2016-08-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多