Elasticsearch(三)—— es的批量操作(mget & bulk)

批量获取和批量的bulk操作

 

mget批量查询

如果通过之前的get方法去获取某个document/数据的时候,当要查询的数量过多的时候,效率是比较低的(http操作每次建立都要经历三次握手),所以es提供了一个mget,可以让我们一次性查询多条记录

 

查询job1中id为1的数据,和job2中id为2的数据

GET _mget
{
  "docs":[
    {"_index":"testdb",
      "_type":"job1",
      "_id":1
    },
    {"_index":"testdb",
      "_type":"job2",
      "_id":2
    }
    ]
}

 

如果获取的index和type都一样,可以这样写

GET testdb/job1/_mget
{
  "docs":[
    {
      "_id":1
    },
    {
      "_id":2
    }
    ]
}

 

 

bulk批量操作

批量导入可以合并多个操作,比如index,delete, update,create等等。

也可以帮助我们从一个索引导入到另一个索引中

 

POST _bulk
{"index":{"_index":"lagou","_type":"job","_id":"1"}}
{"title":"python分布式爬虫开发","salary_min":15000,"city":"北京","company":{"name":"百度","company_addr":"北京市软件园"},"publish_date":"2017-4-16","comments":15}
{"index":{"_index":"lagou","_type":"job2","_id":"2"}}
{"title":"python django开发","salary_min":30000,"city":"成都","company":{"name":"阿里巴巴","company_addr":"北京软件园B区"},"publish_date":"2017-4-18","comments":50}

这里一定只能写成一行,不能为了美观写成多行

 

需要注意的是,bulk的操作写法每一条数据都是由两行构成,delete除外

像我们上面写的index,每个都是两行,还有

只有delete是一行

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值