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中如何批量插入文档。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值