一次项目中要利用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
领取专属 10元无门槛券
私享最新 技术干货