如何修改Elasticsearch查询以获取当前周起始至今的数据?
解决Elasticsearch周起始日期查询的解析错误问题
你用的日期数学表达式格式不符合Elasticsearch的语法要求,日期截断操作符/后面只能跟标准时间单位(比如y年、M月、w周、d天),不能用yyyy-W/W这种自定义格式,所以触发了parse_exception错误。
正确的周起始查询写法
要获取本周起始至今的数据,把range条件里的gte值改成now/w即可。w代表周单位,now/w会自动截断到本周的起始时间(具体是周一还是周日取决于你的Elasticsearch时区和周起始配置,默认以周一为周起始)。
修改后的完整查询
{ "size": 10, "timeout": "1000s", "query": { "bool": { "must": [ { "match": { "filter_grouper": "ABC" } }, { "match": { "state": "High" } }, { "range": { "end_date": { "gte": "now/w", "lte": "now" } } } ] } }, "_source": [ "number", "barrel" ] }
补充说明
如果业务需要以周日作为周起始,可以调整Elasticsearch的周起始配置,或者在日期表达式中指定对应时区,默认的now/w就能满足多数本周起始的查询需求。
内容的提问来源于stack exchange,提问作者Puneeth C
相关产品推荐
相关产品推荐

