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 批量插入文档的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 批量操作,一次插入多少行数据效率最高?

原创《从0开始学Elasticsearch》—document的单/批量crud

如何使用NEST Bulk Api将文档添加到elasticsearch

一日一技:Elasticsearch批量插入时,存在就不插入

Elasticsearch掰开揉碎第12篇java操作ES常用API

Elasticsearch批量插入时,存在就不插入