如何用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
相关产品推荐
相关产品推荐

