26.mget批量查询

主要知识点

   

一、mget批量查询的好处

   

get查询就是一条一条的查询,比如说要查询100条数据,那么就要发送100次网络请求,这个开销还是很大的。如果使用mget进行批量查询的话,查询100条数据,就只要发送1次网络请求,网络请求的性能开销缩减100倍,这样可以更好的优化性能。

二、mget的语法

GET /_mget

{

"docs" : [{json1},{json2},……]

}

三、用法举例

1、先准备两条数据

PUT /test_index/test_type/1

{

"test_field1": "test field1"

}

PUT /test_index/test_type/2

{

"test_field2": "test field2"

}

2、用get一条一条的查询

GET /test_index/test_type/1

GET /test_index/test_type/2

可以看到,要查询两条数据,必须发送两次请求。

3mget批量查询:_index,_type,_id都不相同

GET /_mget

{

"docs" : [

{

"_index" : "test_index",

"_type" : "test_type",

"_id" : 1

},

{

"_index" : "test_index",

"_type" : "test_type",

"_id" : 2

}

]

}

结果是

{

"docs": [

{

"_index": "test_index",

"_type": "test_type",

"_id": "1",

"_version": 1,

"found": true,

"_source": {

"test_field1": "test field1"

}

},

{

"_index": "test_index",

"_type": "test_type",

"_id": "2",

"_version": 1,

"found": true,

"_source": {

"test_field2": "test field2"

}

}

]

}

   

4mget批量查询:_index相同,_type,_id不相同

GET /test_index/_mget

{

"docs" : [

{

"_type" : "test_type",

"_id" : 1

},

{

"_type" : "test_type",

"_id" : 2

}

]

}

查询结果同上

5mget批量查询:_index_type相同,_id不相同

GET /test_index/test_type/_mget

{

"ids": [1, 2]

}

查询结果同上

四、mget的重要性

mget是很重要的,一般来说,在进行查询的时候,如果一次性要查询多条数据的话,那么一定要用batch批量操作的api。尽可能减少网络开销次数,可能可以将性能提升数倍,甚至数十倍,对es查询的性能优化很重要。

转载于:https://www.cnblogs.com/liuqianli/p/8463967.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值