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

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"}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、批量查询 批量查询的好处 比如说要查询100条数据,那么就要发送100次网络请求,这个开销是很大的。如果进行批...
    WinnXUDONG阅读 6,462评论 0 0
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,048评论 2 89
  • 欢迎访问我的博客查看原文:http://wangnan.tech 注:文本整理自《ELKstack权威指南》 目录...
    GhostStories阅读 10,534评论 0 7
  • 2016年1月10日,在深圳举行的“2016胡润新金融百强榜”发布会上,国泰君安首席宏观分析师任泽平带来主题演讲。...
    剑光断夜阅读 276评论 0 0
  • · “查找”?还是“筛选”?这个是问题。 · 设计好这个功能就相当于给用户培训了个简单的管理培训,会有几个用户有耐...
    勤奋的拉大大阅读 126评论 0 1