elasticsearch 批量查询

批量查询

_mget批量查询允许获取一个index,type,或者id的操作

  • 用以下例子来演示
PUT test/_doc/1
{
     
  "counter":2,
  "tags":["reed"]
}
  1. 根据index,type,id来获取doc
GET /_mget
{
     
  "docs":[
    {
     
      "_index":"test",
      "_type":"_doc",
      "_id":1
    },
    {
     
      "_index":"test",
      "_type":"_doc",
      "_id":2
    }
    ]
}
  1. 如果使用的是同一个index,我们可以将index提取出来
GET /test/_mget
{
     
  "docs":[
      {
     
        "_type":"_doc",
        "_id":1
      },
      {
     
        "_type":"_doc",
        "_id":2
      }
    ]
}
  1. 如果使用的同一个type,也可以将_type 提取出来
GET /test/_doc/_mget
{
     
  "docs":[
      {
     
        "_id":1
      },
      {
     
        "_id":2
      }
    ]
}

4.只有id,我们可以进一步进行简化:

GET /test/_doc/_mget
{
     
  "ids":["1","2"]
}
  1. 使用_source 过滤器来筛选你需要的元素:

GET /_mget
{
     
  "docs":[
    {
     
      "_index":"test",
      "_type":"_doc",
      "_id":1,
      "_source":false //禁用source
    },
    {
     
      "_index":"test",
      "_type":"_doc",
      "_id":2,
      "_source":["counter"]//只查询包含counter的source
    },
    {
     
      "_index":"test",
      "_type":"_doc",
      "_id":3,
      "_source":{
     
        "include":["tags"]//通过include和exclude来控制属性的显示
      }
    }
    ]
}

你可能感兴趣的:(ElasticSearch)