Elasticsearch 批量插入文档
Posted 程序员超时空
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elasticsearch 批量插入文档相关的知识,希望对你有一定的参考价值。
Elasticsearch 批量插入文档
本文介绍Elasticsearch中通过单次请求实现批量插入文档。这种方式可以提升性能,通常打开和关闭连接代价比较高,因此最好多次请求仅做一次。
示例说明
下面示例我们假设系统已经有了索引"myIndex",类型为"person",且映射有name和age两个属性。
简单批量插入
当批量插入所有文档都属于相同索引和类型时,需要说明的是url中包括索引和类型。
POST http://path.to.your.cluster/myIndex/person/_bulk
"index":
"name":"john doe","age":25
"index":
"name":"mary smith","age":32
代码结构或多或少是这样的:一行是要执行的动作(在本例中是“index”),另一行是实际文档。想重复多少次就重复多少次,不要忘记每行最后的换行符。
批量插入不同类型和所有文档
如果你希望插入所有不属于相同类型的索引和文档时,需要在动作行中增加index和type,后面是实际的文档。示例代码如下:
POST http://path.to.your.cluster/_bulk
"index": "_index": "myIndex", "_type": "person"
"name":"john doe","age":25
"index": "_index": "myOtherIndex", "_type": "dog"
"name":"fido","breed":"chihuahua"
批量插入手动指定ID
除了索引名和类型外,还可以在批量插入请求中为每个文档提供id:
POST http://path.to.your.cluster/myIndex/person/_bulk
"index":
"name":"john doe","age":25
"index": "_id": "8a78dhkujg"
"name":"mary smith","age":32
总结
本文通过示例介绍了Elasticsearch中如何批量插入文档。
以上是关于Elasticsearch 批量插入文档的主要内容,如果未能解决你的问题,请参考以下文章
原创《从0开始学Elasticsearch》—document的单/批量crud
如何使用NEST Bulk Api将文档添加到elasticsearch
一日一技:Elasticsearch批量插入时,存在就不插入