Elasticsearch技术解析与实战(七)Elasticsearch批量操作
2017-09-11 21:49
525 查看
批量查询
1.如果查询的document是不同index下的不同type种的话GET /_mget { "docs" : [ { "_index" : "test_index", "_type" : "test_type", "_id" : 1 }, { "_index" : "test_index", "_type" : "test_type", "_id" : 2 } ] }
2.如果查询的document是一个index下的不同type种的话
GET /test_index/_mget { "docs" : [ { "_type" : "test_type", "_id" : 1 }, { "_type" : "test_type", "_id" : 2 } ] }
3.如果查询的数据都在同一个index下的同一个type下,最简单了
GET /test_index/test_type/_mget { "ids": [1, 2] }
mget的重要性:
可以说mget是很重要的,一般来说,在进行查询的时候,如果一次性要查询多条数据的话,那么一定要用batch批量操作的api
尽可能减少网络开销次数,可能可以将性能提升数倍,甚至数十倍,非常非常之重要
bulk语法
bulk api对json的语法,有严格的要求,每个json串不能换行,只能放一行,同时一个json串和一个json串之间,必须有一个换行bulk操作中,任意一个操作失败,是不会影响其他的操作的,但是在返回结果里,会告诉你异常日志
第一种
POST /_bulk { "delete": { "_index": "test_index", "_type": "test_type", "_id": "3" }} { "create": { "_index": "test_index", "_type": "test_type", "_id": "12" }} { "test_field": "test12" } { "index": { "_index": "test_index", "_type": "test_type", "_id": "2" }} { "test_field": "replaced test2" } { "update": { "_index": "test_index", "_type": "test_type", "_id": "1", "_retry_on_conflict" : 3} } { "doc" : {"test_field2" : "bulk test1"} }
第二种
POST /test_index/_bulk { "delete": { "_type": "test_type", "_id": "3" }} { "create": { "_type": "test_type", "_id": "12" }} { "test_field": "test12" } { "index": { "_type": "test_type" }} { "test_field": "auto-generate id test" } { "index": { "_type": "test_type", "_id": "2" }} { "test_field": "replaced test2" } { "update": { "_type": "test_type", "_id": "1", "_retry_on_conflict" : 3} } { "doc" : {"test_field2" : "bulk test1"} }
第三种
POST /test_index/test_type/_bulk { "delete": { "_id": "3" }} { "create": { "_id": "12" }} { "test_field": "test12" } { "index": { }} { "test_field": "auto-generate id test" } { "index": { "_id": "2" }} { "test_field": "replaced test2" } { "update": { "_id": "1", "_retry_on_conflict" : 3} } { "doc" : {"test_field2" : "bulk test1"} }
bulk size最佳大小
bulk request会加载到内存里,如果太大的话,性能反而会下降,因此需要反复尝试一个最佳的bulk size。一般从1000~5000条数据开始,尝试逐渐增加。另外,如果看大小的话,最好是在5~15MB之间。
相关文章推荐
- Elasticsearch技术解析与实战(七)Elasticsearch partial update
- Elasticsearch技术解析与实战(一)基础概念及环境搭建
- Elasticsearch技术解析与实战(三)文档的聚合
- Elasticsearch技术解析与实战(四)shard&replica机制
- Elasticsearch技术解析与实战(五)Document解析
- Elasticsearch技术解析与实战(六)Elasticsearch并发
- Elasticsearch技术解析与实战(二)文档的CRUD操作
- 《KVM虚拟化技术实战和原理解析》读书笔记(三)
- 实时音视频互动系列(下):基于 WebRTC 技术的实战解析
- 深度学习框架技术解析及caffe实战一些总结
- TensorFlow技术解析与实战 7 TensorFlow 的高级框架
- KVM虚拟化技术实战与原理解析——读书笔记
- Java并发编程高阶技术 高性能并发框架源码解析与实战
- 《TensorFlow技术解析与实战》高清中文PDF+源代码
- tensorflow61 《TensorFlow技术解析与实战》13 生成式对抗网络
- ElasticSearch实战 (一)技术选型和简单环境搭建
- TensorFlow技术解析与实战 8 第一个tensorflow程序
- Linux01-企业核心技术之逻辑卷LVM深入解析和实战36
- TensorFlow技术解析与实战 9 TensorFlow在MNIST中的应用