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)
除非适用法律要求或书面同意,否则根据许可证分发的软件
是以“现状”为基础分发的,
不提供任何明示或暗示的保证或条件。
有关许可证下权限和限制的特定语言,请参阅许可证。
项目详情
===========
_"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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | bbe91527e16c944872f578132c6a637cda726866acc10cabc000365e6fb16217 |
|
MD5 | ca39f9a132c4fc5f257e5eb66b951a5a |
|
BLAKE2b-256 | 1cc3038503b00f5283a3b80b9c5f4e326c21410c16fe4003d70f026af5df80de |