• elasticsearch6 学习之批量操作


    环境:elasticsearch6.1.2        kibana6.1.2 

    一、mget批量查询

    mget可以将多个请求才能获的数据,合并到一个请求中以节省网络开销。

    1、查询同一个索引下,通一个类型,不同id的数据

    GET /book_index/book_type/_mget
    {
       "docs" : [
          {
             "_id" :    1
          },
          {
             "_id" :    2
          }
       ]
    }

    更简单的方式:

    GET /book_index/book_type/_mget
    {
      "ids":[1,2]
    }

    2、查询不同索引,不同类型的数据

    GET /_mget
    {
       "docs" : [
          {
            "_index":"test_index",
            "_type":"test_type",
             "_id" :    1
          },
          {
            "_index":"book_index",
            "_type":"book_type",
             "_id" :    1
          }
       ]
    }

    二、bulk 批量添加、修改、删除操作

    1、bulk api对json的语法,有严格的要求,每个json串不能换行,只能放一行,同时一个json串和一个json串之间,必须有一个换行

    2、bulk操作中,任意一个操作失败,是不会影响其他的操作的,但是在返回结果里,会告诉你异常日志

    3、bulk request会加载到内存里,如果太大的话,性能反而会下降,因此需要反复尝试一个最佳的bulk,size。一般从1000~5000条数据开始,尝试逐渐增加。另外,如果看大小的话,最好是在5~15MB之间。

    1、bulk批量添加

    POST /_bulk 
    {"create":{"_index":"book_index","_type":"book_type","_id":4}}     //create 添加操作
    {"name":"book4","author":"ADC"}
    {"create":{"_index":"book_index","_type":"book_type","_id":5}}     //create 添加操作
    {"name":"book5","author":"ADC5"}
    {"index":{"_index":"book_index","_type":"book_type","_id":4}}      //index  该数据做的是全量替换操作
    {"name":"book4","author":"update rep"}

    2、bulk批量修改

    POST /_bulk
    {"update":{"_index":"book_index","_type":"book_type","_id":6}}
    {"doc":{"name":"book666","author":"update rep6666"}}
    {"update":{"_index":"book_index","_type":"book_type","_id":7}}
    {"doc":{"name":"book77"}}

    该方式做的是partial update  指定修改内容修改。

    3、bulk批量删除

    POST /_bulk
    {"delete":{"_index":"book_index","_type":"book_type","_id":6}}
    {"delete":{"_index":"book_index","_type":"book_type","_id":7}}
  • 相关阅读:
    git命令
    深度剖析Apache Dubbo核心技术内幕学习笔记
    MyBatis-Plus简介
    Mysql主从复制原理
    springboot启动原理
    布隆过滤器
    java poi生成的excel发送邮件后无法预览
    Git使用教程:最详细、最傻瓜、最浅显、真正手把手教!
    javacv FFmpeg 视频压缩
    .NetCore之接口缓存
  • 原文地址:https://www.cnblogs.com/jalja/p/8371725.html
Copyright © 2020-2023  润新知