乐趣区

elasticsearch学习笔记(十六)——Elasticsearch mget批量查询api实战

首先说明一下为什么需要批量查询操作?假设一下比如说我们没有批量查询的操作,那么当我们获取数据的时候,就是一条一条的查询。设想一下我们要获取 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”
}
}
]
}

退出移动版