elasticsearch6 学习之批量操作

Posted 小禾点点

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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}}

 

以上是关于elasticsearch6 学习之批量操作的主要内容,如果未能解决你的问题,请参考以下文章

python学习之批量更改文件格式

Python学习之struts2-045批量检测脚本

Python机器学习之单变量线性回归 利用批量梯度下降找到合适的参数值

深度学习之BN(批量标准化)

4_InfluxDB学习之InfluxDB的基本概念InfluxDB中独有的概念(Point,series),InfluxDB学习之InfluxDB的基本操作,InfluxDB操作方式,crud(代码

机器学习之回归算法