[英]Elasticsearch 2.4 post_filter date math
在Elasticsearch 2.4查询中使用带有date math
的post_filter
,如下所示:
"post_filter": {
"bool": {
"must": [
[
{
"range": {
"facets.due_date": {
"gte": "now+2d\/d",
"lte": "now+3d\/d-1s"
}
}
}
]
]
}
}
结果包括日期超出范围1天的文档。 在报告桶的正确计数的聚合中使用完全相同的值(在这种情况下为星期六的2个文档),但是,当我应用上述过滤器时提到的3个文档被返回[额外的文档是针对星期日的早上9点]。 日期是任意的,我可以在几天内改变它们,同样的事情发生。 我也是在UTC时间,并且在我的测试中允许通过在值中添加/删除几个小时来绕过时区引发的任何错误。
如果我使用一组实际的具体日期,它按预期工作,所以我的问题是, post_filter
是否有date math
的问题/错误,或者有没有办法使用explain
来显示post_filter
发送到ES服务器的日期?
在此先感谢,我已经将头撞在砖墙上3天!
因此,原来使用一些非常奇怪的原因, lte
在周围的文件后过滤器捕获,而如果我使用lt
那么它将按预期工作,我没有一个线索,这是为什么这样做,我只能假设某些圆整走应用post_filter
时的位置,但在计算聚合时不会舍入!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.