python-elasticsearch 的踩坑经历

一次项目中要利用python对Elasticsearch进行批量更新操作,于是就开始了踩坑之路。先是百度,相关操作很少,而且都不是很完整,继而谷歌,也没有相关的有价值的文章,最后知道打开官方文档,一步一个脚印自己探索了。希望此文,能给有需要的人一些帮助。

废话不多说直接上代码:

1、elasticsearch库的安装:

pip install elasticsearch

2、导入相关包:

3、创建连接实例:

4、接下来就可进行增删改查的操作了:

先来小试牛刀:

1)、 根据id查询单条数据:

query相当于sql语句,注意index是索引(相当于表名), doc_type就是es的_type属性(自己设置的), body就是要查询的语句,返回的是json数据。

当然查询的时候也不是非得要这种方法, 也可以利用requests的相关方法完成查询。这里介绍一下用这个方法进行分页查询,大家可以举一反三:

2)、根据id更新数据:

注意up的格式,data['update'] = {'name' : 'wang'} ()

3)、根据id删除数据

4)、创建的话有两个方法:

一个是create(**kwargs),一个是index(**kwargs)

根据官方文档:

前者是调用index(..., op_type='create')的方法,他们的区别

前者:Adds a typed JSON document in a specific index, making it searchable.

或者:Adds or updates a typed JSON document in a specific index, making it searchable。或者多了一个updates

以上对es基本上可以进行操作了,但是数据量大时我们要考虑批量操作:

这里举一个批量更新的例子:

注意action的格式,这样就可进行批量操作了。

时间有限,还有很多方法不能一一举例,大家可以参照官方文档:

http://elasticsearch-py.readthedocs.io/en/master/api.html

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180629G0KBLB00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券