跳转到主要内容

Elasticsearch的Python客户端

项目描述

官方低级Elasticsearch客户端。其目标是提供一个在Python中处理所有与Elasticsearch相关的代码的共同平台;因此,它试图不带有偏见且非常易于扩展。

有关更高级别的客户端库,请参阅 elasticsearch-dsl - 位于 elasticsearch-py 之上的更Pythonic库。

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

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

兼容性

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

对于6.0版及以后的Elasticsearch,请使用库的主版本6(6.x.y)。

对于5.0版及以后的Elasticsearch,请使用库的主版本5(5.x.y)。

对于2.0版及以后的Elasticsearch,请使用库的主版本2(2.x.y),依此类推。

在您的setup.pyrequirements.txt中设置需求的首选方式是

# Elasticsearch 6.x
elasticsearch>=6.0.0,<7.0.0

# Elasticsearch 5.x
elasticsearch>=5.0.0,<6.0.0

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

如果您需要同时安装多个版本,则较旧的版本也作为elasticsearch2elasticsearch5elasticsearch6发布。

安装

使用pip

安装Elasticsearch 6.x的elasticsearch

pip install "elasticsearch>=6,<7"

示例用法

简单用例

>>> 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'}

完整文档.

Elastic Cloud(及SSL)用例

>>> from elasticsearch import Elasticsearch
>>> es = Elasticsearch("https://elasticsearch.url:port", http_auth=('elastic','yourpassword'))
>>> es.info()

使用自签名证书的SSL上下文用例

>>> from elasticsearch import Elasticsearch
>>> from ssl import create_default_context

>>> context = create_default_context(cafile="path/to/cafile.pem")
>>> es = Elasticsearch("https://elasticsearch.url:port", ssl_context=context, http_auth=('elastic','yourpassword'))
>>> es.info()

功能

客户端的功能包括

  • 将基本Python数据类型转换为JSON,反之亦然(出于性能原因,日期时间不会解码)

  • 可配置的自动发现集群节点

  • 持久连接

  • 对所有可用节点进行负载均衡(具有可插拔的选择策略)

  • 失败的连接惩罚(基于时间 - 失败的连接不会重试,直到达到超时)

  • 支持SSL和HTTP身份验证

  • 线程安全

  • 可插拔架构

许可证

版权2017年Elasticsearch

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

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

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

构建状态

https://readthedocs.org/projects/elasticsearch-py/badge/?version=latest&style=flat https://clients-ci.elastic.co/job/elastic+elasticsearch-py+master/badge/icon

项目详情


下载文件

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

源分发

elasticsearch6-6.8.2.tar.gz (85.3 kB 查看散列

上传时间

构建分发

elasticsearch6-6.8.2-py2.py3-none-any.whl (90.8 kB 查看散列

上传时间 Python 2 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面