Elasticsearch组合match与range查询近15分钟数据报解析错误如何解决
Elasticsearch DSL查询语法修正方案
报错根因
你编写的DSL不符合Elasticsearch查询语法规范:query根节点下不允许直接并列多个独立查询子句(你同时放了match和range两个条件),才会触发parsing_exception解析错误。
修正后查询语句
要同时满足多个查询条件,需要使用bool查询的must参数包裹所有需要同时匹配的条件,修正后的语句如下:
GET /logstash-dev-2021.12.03/_search { "query": { "bool": { "must": [ { "match": { "deploymentId": "64a5d214-368c-4760" } }, { "range": { "time": { "gte": "now-15m", "lte": "now" } } } ] } } }
可选优化:如果
deploymentId字段类型为keyword,且需要完全匹配值,可将match替换为term查询,查询性能更优。
内容的提问来源于stack exchange,提问作者Rama Krishna S
相关产品推荐
相关产品推荐

