You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用elasticsearch-dsl-py编写正确的intervals查询?求示例指导

Elasticsearch DSL Py 正确实现 intervals 查询

你之前的DSL写法没有对应原生查询的层级结构,需要严格匹配intervals -> 目标字段 -> all_of -> intervals -> match的嵌套层级来构建,以下是正确的实现代码:

from elasticsearch_dsl import Q

# 构建intervals查询逻辑
intervals_query = Q(
    "intervals",
    search_field={
        "all_of": {
            "intervals": [
                {
                    "match": {
                        "query": "search_term",
                        "max_gaps": 1
                    }
                }
            ]
        }
    }
)

# 组合到bool查询中
final_query = Q(
    "bool",
    must=[intervals_query]
)

结构对应说明

这个写法完全和你提供的原生Elasticsearch查询结构一一对应:

  • 外层bool查询的must数组包含intervals查询
  • intervals内指定目标字段search_field,对应值为all_of规则
  • all_of的intervals数组里存放具体的match匹配规则,设置query和max_gaps参数

如果需要添加多个匹配条件,直接在intervals数组中增加更多match字典即可。

内容的提问来源于stack exchange,提问作者Sajjad Zaidi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 05:25:20