Elasticsearch的Python客户端
项目描述
官方低级Elasticsearch客户端。其目标是提供一个所有Python相关Elasticsearch代码的共同基础;因此,它试图保持无偏见且高度可扩展。
对于更高级的客户端库,具有更有限的范围,请参阅 elasticsearch-dsl - 一个更Pythonic的库,它建立在 elasticsearch-py 之上。
它提供了一种更方便、更符合Python语法的编写和操作 查询 的方法。它紧密接近Elasticsearch JSON DSL,同时反映其术语和结构,并通过定义类或类似查询集的表达式,从Python直接公开整个DSL的范围。
它还提供了一个可选的持久化层,用于以对象关系映射(ORM)的方式处理文档,作为Python对象工作:定义映射、检索和保存文档、将文档数据封装在用户定义的类中。
兼容性
该库兼容Elasticsearch 5.x。对于Elasticsearch 2.x,请使用elasticsearch2,对于未来的版本,请使用elasticsearch。
安装
使用pip安装elasticsearch5包
pip install elasticsearch5
示例用法
简单用例
>>> from datetime import datetime >>> from elasticsearch import Elasticsearch # by default we connect to localhost:9200 >>> es = Elasticsearch() # create an index in elasticsearch, ignore status code 400 (index already exists) >>> es.indices.create(index='my-index', ignore=400) {u'acknowledged': True} # datetimes will be serialized >>> es.index(index="my-index", doc_type="test-type", id=42, body={"any": "data", "timestamp": datetime.now()}) {u'_id': u'42', u'_index': u'my-index', u'_type': u'test-type', u'_version': 1, u'ok': True} # but not deserialized >>> es.get(index="my-index", doc_type="test-type", id=42)['_source'] {u'any': u'data', u'timestamp': u'2013-05-12T19:45:31.804229'}
完整文档.
功能
客户端的功能包括
将基本Python数据类型转换为JSON以及从JSON转换回来(出于性能考虑,日期时间不会进行解码)
可配置的自动发现集群节点
持久连接
所有可用节点的负载均衡(具有可插拔的选择策略)
失败的连接处罚(基于时间的 - 失败的连接将在达到超时之前不会重试)
支持SSL和HTTP身份验证
线程安全
可插拔架构
许可证
版权所有 2017 Elasticsearch
根据Apache许可证第2版(“许可证”)进行许可;除非适用法律要求或书面同意,否则不得使用此文件,除非遵守许可证。您可以在以下位置获得许可证副本:
除非适用法律要求或书面同意,否则在许可证下分发的软件按“原样”分发,不提供任何明示或暗示的保证或条件。有关许可的具体语言,请参阅许可证。