跳转到主要内容

elasticsearch的Python包装器

项目描述

elasticpy
===========
_"ElasticSearch for the rest of us"_

elasticsearch索引工具的Python包装器。

作者: [Luke Campbell](http://lukecampbell.github.com/) [<luke.s.campbell@gmail.com>](mailto:luke.s.campbell@gmail.com)

关于
-----
此模块的目标是在Python API和ElasticSearch API之间提供一个直观的接口。连接通过`requests`库提供,因此连接本质上是线程安全的并且是池化的。

在JSON中编写复杂的查询可能会很繁琐且耗时,尤其是需要经常参考查询DSL指南时。因此,我们将大多数操作封装在类中,这些类的方法与操作的参数相对应。例如:

sorts = ElasticSort()
sorts.sort('name', order='asc')
sorts.sort('_score')
----
[{"name": {"order": "asc"}}, {"_score": {"order": "asc"}}]

查询、过滤器、排序、映射和细分都被封装在便利类中。搜索是通过ElasticSearch类完成的。

如何使用
-----

要开始使用elasticpy,首先导入。

import elasticpy as ep

要与Elasticsearch服务器接口,使用ElasticSearch对象。

search = ep.ElasticSearch() # 默认为localhost:9200

要形成查询,使用ElasticQuery包装对象。

query = ep.ElasticQuery().term('users':'luke')

# 然后将其传递给搜索对象

search.search_advanced('twitter','feeds',query)

> {u'_shards': {u'failed': 0, u'successful': 5, u'total': 5},
u'hits': {u'hits': [{u'_id': u'1',
u'_index': u'twitter',
u'_score': 0.30685282,
u'_source': {u'content': u'This is an example.', u'user': u'luke'},
u'_type': u'feeds'}],
u'max_score': 0.30685282,
u'total': 1},
u'timed_out': False,
u'took': 3}

用法
-----
* 查询 - `ElasticQuery`

query = ElasticQuery()

* 术语搜索

query.term(name='luke')

* 文本搜索

query.text('message', 'this is a test')

* 文本短语

query.text_phrase('message', 'this is a test')

* 模糊

query.fuzzy('name','luke', boost=1.0)

* 模糊如这个

query.fuzzy_like_this('luke', fields='_all')

* **匹配所有**

query.match_all()

* 通配符

query.wildcard('name','lu*')

* 过滤器 - `ElasticFilter`

filters = ElasticFilter()

* 且

filters.and_filter(query)

* Bool

filters.bool_filter(must=query1, must_not=query2, should=query3)

* 地理

* 地理距离

filters.geo_distance('location',{'lat':30,'lon':30}, '20km')

* 地理边界框

filters.geo_bounding_box('location', {'lat':60, 'lon':60}, {'lat':30, 'lon':30})

* 匹配所有

filters.match_all()

* 范围

filters.numeric_range('price',8.0, 9.9)



复制
-----------

**elasticpy** - ElasticSearch的Python包装器

版权所有 2012 UC Regents

根据Apache许可证版本2.0(“许可证”);
除非本许可证另有规定,否则不得使用此文件。
您可以在以下位置获得许可证副本:

[https://apache.ac.cn/licenses/LICENSE-2.0](https://apache.ac.cn/licenses/LICENSE-2.0)

除非适用法律要求或书面同意,否则根据许可证分发的软件
是以“现状”为基础分发的,
不提供任何明示或暗示的保证或条件。
有关许可证下权限和限制的特定语言,请参阅许可证。
项目详情

发布历史记录


下载文件

下载适合您平台的应用程序。如果您不确定要选择哪个,请了解更多关于安装包的信息。

源代码分发

elasticpy-0.12.tar.gz (17.1 kB 查看哈希值)

上传时间:

支持

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