用于ElasticSearch的Python客户端

elasticsearch5的Python项目详细描述


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

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

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

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

兼容性

库与elasticsearch5.x兼容。弹性搜索2.x 请使用elasticsearch2,对于将来的版本,请使用elasticsearcch

安装

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

Full documentation

功能

客户的功能包括:

  • 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://secure.travis-ci.org/elastic/elasticsearch-py.png

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

推荐PyPI第三方库


热门话题
我们应该在测试java代码时模拟黄瓜测试吗。我们应该在多大程度上使用黄瓜?   Hibernate Weblogic 10.3.4 java。lang.NoSuchMethodError:javax/persistence/spi/PersistenceUnitInfo。getValidationMode()Ljavax/persistence/ValidationMode;   java如何在main()中访问私有静态实例变量   java JMockit无法模拟类的公共final字段   java是否可以返回特定控制器操作的输出(html)?   java如何返回正确类型的列表?   rest-OpenUI/Swagger-java-to-API   java组织。springframework。豆。工厂NoSuchBeanDefinitionException或加载ApplicationContext失败   java使用POST将参数从JSP发送到Servlet   java如何监听特定的按钮按下和主视图用户交互?   java如何让gradle在本地maven repo中覆盖库?   如何在Java中“合并”两个URI?   java如何制作一个方法来移动数组中的字符?   使用来自java的命令启动powershell窗口   java垃圾收集器和匿名类   java如何为CellTable(GWT 2.4)中的ImageResourceCell创建PanelPopup?