python操作elasticsearch
Posted pfeiliu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python操作elasticsearch相关的知识,希望对你有一定的参考价值。
Python Elasticsearch api(官方文档)
安装Elasticsearch模块
pip install elasticsearch
添加数据
from elasticsearch import Elasticsearch # 默认host为localhost,port为9200.但也可以指定host与port
es = Elasticsearch("http://localhost:9200")
# 添加或更新数据,index,doc_type名称可以自定义,id可以根据需求赋值,body为内容 如果不写id值的话会生成一个随机数的id
es.index(index="my_index",doc_type="test_type",id=1,body={"name":"python","addr":"深圳"})
{\'_index\': \'my_index\', \'_type\': \'test_type\', \'_id\': \'9K3sSGoBL92egitcUv3j\', \'_score\': 1.0, \'_source\': {\'name\': \'c\', \'addr\': \'广州\', \'tittle\': \'13 c学习\', \'age\': 13}}
删除数据
delete:删除指定index、type、id的文档 es.delete(index=\'indexName\', doc_type=\'typeName\', id=\'idValue\') #当被删除的文档不存在的时候会报错
条件删除
body = { \'query\':{ \'range\':{ \'age\':{ \'gte\':10, \'lte\':10 } } } } # es.delete_by_query(index=\'my_index\',body=body)
查询数据
from elasticsearch import Elasticsearch es = Elasticsearch() # 获取索引为my_index,文档类型为test_type的所有数据,result为一个字典类型 result = es.search(index="my_index") # 或者这样写:搜索id=1的文档 result = es.get(index="my_index",doc_type="test_type",id=1) # 打印所有数据 for item in result["hits"]["hits"]: print(item["_source"])
参考文章:https://www.cnblogs.com/wangkun122/articles/10736507.html
以上是关于python操作elasticsearch的主要内容,如果未能解决你的问题,请参考以下文章
ElasticSearch学习问题记录——Invalid shift value in prefixCoded bytes (is encoded value really an INT?)(代码片段
Python Elasticsearch API操作ES集群