Elasticsearch 批量更新插入特定字段的查询

问题描述 投票:0回答:2

有一个带有此映射的索引:

"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
2个回答
0
投票

您可以考虑直接查询

_id
字段,而不是
uid
字段。


-1
投票

如果您将操作从

update
更改为
insert
,您将进行更新插入。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.