使用MultiGet实现批量获取文档

使用es提供额Multi Get API 可以通过索引名、类型名、文档id一次得到一个文档集合、文档可以来自同一个索引空,也可以来自不同索引库

使用curl命令:

 curl 'http://192.168.15.160:9200/_mget' -d '{
    "docs": [
        {
            "_index":"lib",
            "_type":"user",
            "_id":1
        },
        {
            "_index":"lib",
            "_type":"user",
            "_id":2
        }
    ]
 }'

在kibana

GET /_mget
{
    "docs": [
        {
            "_index":"lib",
            "_type":"user",
            "_id":1
        },
        {
            "_index":"lib",
            "_type":"user",
            "_id":2
        }
    ]
 }'

获取文档中指定的字段:

GET /_mget
{
    "docs": [
        {
            "_index":"lib",
            "_type":"user",
            "_id":1,
            "_source": "interests"
        },
        {
            "_index":"lib",
            "_type":"user",
            "_id":2,
            "_source": ["age","interests"]
        }
    ]
 }'

获取同索引同类型下的不同文档

GET /lib/user/_mget
{
    "docs": [
        {
            "_id":1
        },
        {
            "_id":2
        }
    ]
}

更简化的写法

GET /lib/user/_mget
{
    "ids": ["1","2"]
}

发表评论