我不确定我是否正确使用upsert批量索引中的操作.
我的要求是:
{ "update": {"_id": "610946100"}}\n
{"doc": {"id":"610946100","uri":"/0/0/1/6/4/0/610946100.xml"}, "doc_as_upsert" : true}\n
Run Code Online (Sandbox Code Playgroud)
和网址是: http://localhost:9200/anIndex/aType/_bulk
我想我在文档中遗漏了一些内容,但我仍然无法找到如何进行此操作.
我想要的是在索引中创建上述文档或更新它(如果存在).
dch*_*har 26
如果您通过批量API在索引中添加记录
{ "create": {"_id": "someId"}}\n
{"id":"someId","uri":"/0/1/3/2/1/0511912310/511912310.xml"}\n
Run Code Online (Sandbox Code Playgroud)
那么如果id已存在于索引中,您将获得异常.如果要添加或替换文档(取决于是否存在),您应该将请求作为
{ "index": {"_id": "someId"}}\n
{"id":"someId","uri":"/0/1/3/2/1/0511912310/511912310.xml"}\n
Run Code Online (Sandbox Code Playgroud)
如果已存在具有相同索引和类型的文档,则create将失败,而index将根据需要添加或替换文档
https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html版本5.3
我看到的唯一要求与批量文档之间的区别是示例具有在update操作中定义的索引和类型。因此,基于此,我将尝试添加如下所示的值。
{"update": {"_id": "610946100", "_type": "aType", "_index": "anIndex"}}\n
{"doc": {"uri":"/0/0/1/6/4/0/610946100.xml"}, "doc_as_upsert" : true}\n
Run Code Online (Sandbox Code Playgroud)
另外,由于您是_id在update命令中指定文档的,因此我将从部分文档中将其删除,或将其标记为_id。(您缺少下划线)
| 归档时间: |
|
| 查看次数: |
38287 次 |
| 最近记录: |