Elasticsearch报match查询格式错误,同时使用match和range查询如何编写?
问题排查结果
你收到的parsing_exception报错是因为Elasticsearch查询DSL不支持在query字段的同一层级下直接声明多个独立查询子句,你当前的写法直接把match和range作为query下的平级字段,不符合语法要求,多个查询条件必须通过bool复合查询来组合。
修正后的查询请求体
{ "query": { "bool": { "must": [ { "match": { "category": { "query": "الأنظمة", "operator": "and" } } }, { "range": { "date": { "gte": "1970-01-01", "lt": "2400-01-01" } } } ] } }, "size": "1000", "sort": [ { "date": "desc" } ] }
调整说明
- 新增
bool复合查询层,将你原来的两个查询条件都放入must数组中,两个条件为「同时满足」的逻辑关系,和你原本的查询诉求一致 size、sort参数无需调整,保持原有配置即可
内容的提问来源于stack exchange,提问作者Drsaud
相关产品推荐
相关产品推荐

