用于ElasticSearch 6.x的Python客户端

elasticsearch6的Python项目详细描述


ElasticSearch的官方低级客户端。它的目标是提供 python中所有与elasticsearch相关的代码的基础;因此它尝试 没有意见,而且很容易扩展。

对于范围更为有限的更高级别客户端库,请查看 elasticsearch-dsl-位于 elasticsearch-py

它提供了一种更方便、更惯用的方式来编写和操作 queries。它与elasticsearch的json dsl很接近,反映了它的 术语和结构,同时公开来自python的dsl的整个范围 直接使用定义的类或类查询集表达式。

它还提供了一个可选的persistence layer用于将文档作为 类似于orm的python对象:定义映射、检索和保存 文档,将文档数据包装到用户定义的类中。

兼容性

库与自0.90.x以来的所有ElasticSearch版本兼容,但是 必须使用匹配的主版本

对于elasticsearch 6.0及更高版本,请使用 图书馆。

对于elasticsearch 5.0及更高版本,请使用 图书馆。

对于elasticsearch 2.0及更高版本,请使用 图书馆等等。

setup.py中设置需求的推荐方法 requirements.txt是:

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

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

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

如果您需要同时安装多个旧版本 版本也发布为elasticsearch2elasticsearch5

安装

使用pip:

安装elasticsearch6
pip install elasticsearch6

示例使用

简单用例:

>>> from datetime import datetime
>>> from elasticsearch6 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'}

Full documentation

弹性云(和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()

功能

客户的功能包括:

  • translating basic Python data types to and from json (datetimes are not decoded for performance reasons)
  • configurable automatic discovery of cluster nodes
  • persistent connections
  • load balancing (with pluggable selection strategy) across all available nodes
  • failed connection penalization (time based - failed connections won’t be retried until a timeout is reached)
  • support for ssl and http authentication
  • thread safety
  • pluggable architecture

许可证

2017 ElasticSearch版权所有

根据apache许可证2.0版(以下简称“许可证”)授权; 除非符合许可证,否则您不能使用此文件。 您可以在

http://www.apache.org/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则软件 根据许可证分发是按“原样”分发的, 无任何明示或默示的保证或条件。 有关管理权限的特定语言和 许可下的限制。

生成状态

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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java将Scanner对象作为构造函数参数传递给UserInterface类   spring未能启动bean“subtocolWebSocketHandler”;嵌套的例外是java。lang.IllegalArgumentException:没有处理程序   Java EE应用程序中后台服务的多线程Java线程(设置守护进程和优先级)?   java Pull to refresh返回列表的第一个位置   无法将comparator类转换为java。可比的   java将json从servlet传递到dojo   JavaHibernate:将子类实例转换为超类实例   java警告调用servlet类时非法反射访问   java静态变量值   java@Entity和@embeddeble之间有什么区别   java将作业配置导入公共作业配置类(注释配置)   sql公共表表达式(以values语句开头)在java中给出错误   java在ImageJ中使用ImageProcessor   java PostgreSQL executeBatch()会随着时间的推移而变慢   java在安卓中以表格形式排列sqllite表数据?   java中SVG的swing定制呈现   java删除与另一个实体映射的实体   java何时/如何添加ListView适配器,使用back按钮恢复它?(片段)   java为什么IBinder和Binder之间的类型转换不是非法的?   java在方法参数列表中使用ArrayList或List