如何解决带有特定字段查询的Elasticsearch批量增补
此映射有一个索引:
"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}
解决方法
如果您将操作从update
更改为insert
,则您将需要加仓。
https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html
index和create操作期望下一行的源,并且具有与标准索引API中的op_type参数相同的语义:如果目标 index中已经存在具有相同ID的文档,则create失败根据需要添加或替换文档。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。