一尘不染

ElasticSearch批量插入/更新操作

elasticsearch

我不确定是否upsert在批量索引编制中正确使用了该操作。

我的要求是:

{ "update": {"_id": "610946100"}}\n
{"doc": {"id":"610946100","uri":"/0/0/1/6/4/0/610946100.xml"}, "doc_as_upsert" : true}\n

网址是: http://localhost:9200/anIndex/aType/_bulk

我想我错过了文档中的某些内容,但仍然找不到如何进行此操作的方法。

我想要 在索引中创建以上文档,或者如果存在则对其进行更新。


阅读 987

收藏
2020-06-22

共1个答案

一尘不染

如果您通过批量API将索引中的记录添加为

{ "create": {"_id": "someId"}}\n
{"id":"someId","uri":"/0/1/3/2/1/0511912310/511912310.xml"}\n

那么如果该ID已经存在于索引中,您将获得一个异常。如果要添加或 替换 文档(取决于文档是否存在),则应按以下方式进行请求

{ "index": {"_id": "someId"}}\n
{"id":"someId","uri":"/0/1/3/2/1/0511912310/511912310.xml"}\n

如果已经存在具有相同索引和类型的文档,则创建将失败,而索引将根据需要添加或替换文档

https://www.elastic.co/guide/zh-CN/elasticsearch/reference/current/docs-
bulk.html 5.3版

2020-06-22