美文网首页
es 批量查询,修改,删除,增加操作

es 批量查询,修改,删除,增加操作

作者: 心灵的震撼 | 来源:发表于2018-12-11 15:23 被阅读0次

1、ES批量查询

  • 批量查询采用的是_mget的语法操作。例子:
GET /_mget
{
  "docs":[{
  "_index":"test_index",
  "_type":"test_type",
  "_id":"12"},
  {
  "_index":"test_index",
  "_type":"test_type",
  "_id":"13"}
  ]
}
结果:
{
  "docs": [
    {
      "_index": "test_index",
      "_type": "test_type",
      "_id": "12",
      "_version": 4,
      "found": true,
      "_source": {
        "test_filed1": "xxx my test",
        "test_filed2": "my test2",
        "test_filed3": "my test3"
      }
    },
    {
      "_index": "test_index",
      "_type": "test_type",
      "_id": "13",
      "_version": 1,
      "found": true,
      "_source": {
        "test_filed1": "my test1",
        "test_filed2": "my test2",
        "test_filed3": "my test3"
      }
    }
  ]
}
  • 当然,如果是index都相同的情况,那么可以采用如下方式:
GET /test_index/_mget
{
  "docs":[
        {
            "_type":"test_type",
            "_id":"12"
        },
        {
            "_type":"test_type",
            "_id":"13"
        }
    ]
}
结果:
{
  "docs": [
    {
      "_index": "test_index",
      "_type": "test_type",
      "_id": "12",
      "_version": 4,
      "found": true,
      "_source": {
        "test_filed1": "xxx my test",
        "test_filed2": "my test2",
        "test_filed3": "my test3"
      }
    },
    {
      "_index": "test_index",
      "_type": "test_type",
      "_id": "13",
      "_version": 1,
      "found": true,
      "_source": {
        "test_filed1": "my test1",
        "test_filed2": "my test2",
        "test_filed3": "my test3"
      }
    }
  ]
}
  • 同样,当index和type都一致的情况下,可以这样查询,如下:
GET /test_index/test_type/_mget
{
  "docs":[
        {
            "_id":"12"
        },
        {
            "_id":"13"
        }
    ]
}   or
GET /test_index/test_type/_mget
{
  "ids":[12,13]
}
结果:
{
  "docs": [
    {
      "_index": "test_index",
      "_type": "test_type",
      "_id": "12",
      "_version": 4,
      "found": true,
      "_source": {
        "test_filed1": "xxx my test",
        "test_filed2": "my test2",
        "test_filed3": "my test3"
      }
    },
    {
      "_index": "test_index",
      "_type": "test_type",
      "_id": "13",
      "_version": 1,
      "found": true,
      "_source": {
        "test_filed1": "my test1",
        "test_filed2": "my test2",
        "test_filed3": "my test3"
      }
    }
  ]
}

2、ES批量修改

  • 使用bulk的api来进行批量的修改操作,里面涉及的操作和批量查询有点区别,但是原理都是一样的。可以使用update或者index
POST /test_index/test_type/_bulk
{"update":{"_id":12}}
{"doc":{"test_filed1":"test update bulk12"}}
{"update":{"_id":13}}
{"doc":{"test_filed1":"test update bulk13"}}

3、ES批量删除

  • 同样是使用bulk的api来进行批量删除,但是删除有一个特性,就是只需要一行就够了。
POST /_bulk
{"delete":{"_index":"test_index","_type":"test_type","_id":10}}
{"delete":{"_index":"test_index","_type":"test_type","_id":11}}

4、ES批量增加

  • 增加有2种方式,一种是create,一种是index,create方式类似于我们的put操作
POST /_bulk
{"create":{"_index":"test_index","_type":"test_type","_id":3}}
{"test_filed1":"test bulk create test3"}
{"create":{"_index":"test_index","_type":"test_type","_id":2}}
{"test_filed1":"test bulk create test2"}

相关文章

网友评论

      本文标题:es 批量查询,修改,删除,增加操作

      本文链接:https://www.haomeiwen.com/subject/spbshqtx.html