Elasticsearch DSL
Elasticsearch DSL 是一个高级库,旨在帮助编写和运行针对 Elasticsearch 的查询。它建立在官方低级客户端 (elasticsearch-py) 之上。
它提供了一种更方便、更符合习惯的方式来编写和操作查询。它紧密地遵循 Elasticsearch JSON DSL,镜像其术语和结构。它通过定义的类或类似查询集的表达式,从 Python 中暴露了 DSL 的全部范围。以下是一个示例
from elasticsearch_dsl import Search
s = Search(index="my-index") \
.filter("term", category="search") \
.query("match", title="python") \
.exclude("match", description="beta")
for hit in s:
print(hit.title)
或者使用异步 Python
from elasticsearch_dsl import AsyncSearch
async def run_query():
s = AsyncSearch(index="my-index") \
.filter("term", category="search") \
.query("match", title="python") \
.exclude("match", description="beta")
async for hit in s:
print(hit.title)
它还提供了一个可选的包装器,用于将文档作为 Python 对象进行操作:定义映射、检索和保存文档,将文档数据包装在用户定义的类中。
要使用其他 Elasticsearch API(例如集群健康状况),只需使用底层客户端即可。
安装
使用 pip 安装 elasticsearch-dsl
包
pip install elasticsearch-dsl
对于异步应用程序,请使用 async
额外安装
pip install elasticsearch-dsl[async]
阅读更多关于 如何在该项目中使用 asyncio 的信息。
示例
请参阅 示例 目录,以查看使用 elasticsearch-dsl
的一些复杂示例。
兼容性
该库与所有 Elasticsearch 版本(自 2.x
起)兼容,但您**必须使用匹配的主版本**
对于**Elasticsearch 8.0** 及更高版本,请使用库的主版本 8 (8.x.y
)。
对于**Elasticsearch 7.0** 及更高版本,请使用库的主版本 7 (7.x.y
)。
对于**Elasticsearch 6.0** 及更高版本,请使用库的主版本 6 (6.x.y
)。
对于**Elasticsearch 5.0** 及更高版本,请使用库的主版本 5 (5.x.y
)。
对于**Elasticsearch 2.0** 及更高版本,请使用库的主版本 2 (2.x.y
)。
在您的 setup.py 或 requirements.txt 中设置需求的推荐方法是
# Elasticsearch 8.x
elasticsearch-dsl>=8.0.0,<9.0.0
# Elasticsearch 7.x
elasticsearch-dsl>=7.0.0,<8.0.0
# Elasticsearch 6.x
elasticsearch-dsl>=6.0.0,<7.0.0
# Elasticsearch 5.x
elasticsearch-dsl>=5.0.0,<6.0.0
# Elasticsearch 2.x
elasticsearch-dsl>=2.0.0,<3.0.0
开发工作正在 main
分支上进行,较旧的分支只接收错误修复版本
许可证
版权所有 2013 Elasticsearch
根据 Apache 许可证 2.0 版(“许可证”)许可;除非符合许可证,否则您不得使用此文件。您可以在以下网址获取许可证副本:
除非适用法律要求或以书面形式同意,否则根据许可证分发的软件按“现状”分发,不附带任何明示或暗示的担保或条件。请参阅许可证以了解管理许可证下权限和限制的具体语言。
内容
- 贡献指南
- 变更日志
- 8.14.0 (2024-06-10)
- 8.13.1 (2024-04-30)
- 8.13.0 (2024-04-03)
- 8.12.0 (2024-01-18)
- 8.11.0 (2023-11-13)
- 8.9.0 (2023-09-07)
- 7.4.1 (2023-03-01)
- 7.4.0 (2021-07-15)
- 7.3.0 (2020-09-16)
- 7.2.1 (2020-06-02)
- 7.2.0 (2020-05-04)
- 7.1.0 (2019-10-23)
- 7.0.0 (2019-04-26)
- 6.4.0 (2019-04-26)
- 6.3.1 (2018-12-05)
- 6.3.0 (2018-11-21)
- 6.2.1 (2018-07-03)
- 6.2.0 (2018-07-03)
- 6.1.0 (2018-01-09)
- 6.0.1 (2018-01-02)
- 6.0.0 (2018-01-01)
- 5.4.0 (2017-12-06)
- 5.3.0 (2017-05-18)
- 5.2.0 (2017-03-26)
- 5.1.0 (2017-01-08)
- 5.0.0 (2016-11-04)
- 2.2.0 (2016-11-04)
- 2.1.0 (2016-06-29)
- 2.0.0 (2016-02-18)
- 0.0.10 (2016-01-24)
- 0.0.9 (2015-10-26)
- 0.0.8 (2015-08-28)
- 0.0.5 (2015-08-27)
- 0.0.4 (2015-04-24)
- 0.0.3 (2015-01-23)
- 0.0.2 (2014-08-27)
- 0.0.1 (2014-08-27)