首先说明一下为什么需要批量查询操作?
假设一下比如说我们没有批量查询的操作,那么当我们获取数据的时候,就是一条一条的查询。设想一下我们要获取100条数据,那么就要发送100次请求,这个开销时很大的。但是有了批量查询的话,查询100条数据,就只需要发送一次网络请求就可以了,网络请求的性能开销缩减100倍。
下面是实战部分,演示一下一条一条查询与批量查询:
(1)一条一条查询
GET /test_index/_doc/1
{
"_index" : "test_index",
"_type" : "_doc",
"_id" : "1",
"_version" : 8,
"_seq_no" : 7,
"_primary_term" : 1,
"found" : true,
"_source" : {
"test_field" : "test test",
"name" : "test1"
}
}
GET /test_index/_doc/2
{
"_index" : "test_index",
"_type" : "_doc",
"_id" : "2",
"_version" : 4,
"_seq_no" : 3,
"_primary_term" : 1,
"found" : true,
"_source" : {
"test_field" : "test client 1",
"name" : "test1"
}
}
(2)mget批量查询
GET /_mget
{
"docs": [
{
"_index": "test_index",
"_id": 1
},
{
"_index": "test_index",
"_id": 2
}
]
}
{
"docs" : [
{
"_index" : "test_index",
"_type" : "_doc",
"_id" : "1",
"_version" : 8,
"_seq_no" : 7,
"_primary_term" : 1,
"found" : true,
"_source" : {
"test_field" : "test test",
"name" : "test1"
}
},
{
"_index" : "test_index",
"_type" : "_doc",
"_id" : "2",
"_version" : 4,
"_seq_no" : 3,
"_primary_term" : 1,
"found" : true,
"_source" : {
"test_field" : "test client 1",
"name" : "test1"
}
}
]
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。