带有特定字段查询的Elasticsearch批量增补

时间:2020-10-21 06:02:39

标签: elasticsearch bulkinsert bulkupdate

此映射有一个索引:

"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字段进行查询批量上传?

1 个答案:

答案 0 :(得分:0)

如果您将操作从update更改为insert,则您将需要加仓。

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

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