跳转到主要内容

Elasticsearch的Python客户端

项目描述

官方低级Elasticsearch客户端。其目标是提供Python中所有与Elasticsearch相关的代码的共同基础;因此,它试图不带有任何观点并且非常易于扩展。

有关更高级别的客户端库,范围更有限,请查看elasticsearch-dsl - 建立在elasticsearch-py之上的更Pythonic库。

它提供了一种更方便、更符合语法的编写和操作查询的方法。它紧贴Elasticsearch JSON DSL,模仿其术语和结构,同时通过Python直接使用定义的类或类似查询集的表达式,暴露了整个DSL的范围。

它还提供了一个可选的持久化层,以ORM的方式处理Python对象化的文档:定义映射、检索和保存文档、将文档数据封装在用户定义的类中。

兼容性

该库与从0.90.x以来的所有Elasticsearch版本兼容,但您必须使用匹配的主版本

对于Elasticsearch 2.0及更高版本,使用库的主版本2(2.x.y)。

对于Elasticsearch 1.0及更高版本,使用库的主版本1(1.x.y)。

对于Elasticsearch 0.90.x,使用库的0.4.x版本。

在您的setup.pyrequirements.txt中设置要求的推荐方法是

# Elasticsearch 2.x
elasticsearch>=2.0.0,<3.0.0

# Elasticsearch 1.x
elasticsearch>=1.0.0,<2.0.0

# Elasticsearch 0.90.x
elasticsearch<1.0.0

开发活动在master1.x分支上。

安装

使用安装elasticsearch

pip install elasticsearch

示例使用

简单用例

>>> 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身份验证

  • 线程安全

  • 可插拔架构

许可证

版权所有 2015 Elasticsearch

根据Apache License,版本2.0(“许可证”);除非按照适用的法律要求或书面同意,否则不得使用此文件,除非遵守许可证。您可以在以下位置获得许可证的副本

https://apache.ac.cn/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则在许可证下分发的软件按照“原样”基础分发,不提供任何明示或暗示的保证或条件。有关许可证中规定的权限和限制的具体语言,请参阅许可证。

构建状态

https://secure.travis-ci.org/elastic/elasticsearch-py.png

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码发行版

elasticsearch2-2.5.1.tar.gz (64.7 kB 查看哈希值)

上传时间: 源代码

构建发行版

elasticsearch2-2.5.1-py2.py3-none-any.whl (57.0 kB 查看哈希值)

上传时间: Python 2 Python 3

由以下提供支持