为什么此弹性搜索范围查询似乎取决于查询中的位数?

时间:2016-02-10 14:49:05

标签: elasticsearch kibana

我有大约500,000个具有这种结构的数据文件:

{
"area": "testArea1",
"healthy": true,
"timestamp": "2016-02-10T14:38:20.979000",
"component": "appHealthCheck",
"day_of_week": 3,
"minute_of_day": 38,
"hour_of_day": 14
}

我已将分钟,小时和天分开,以便我可以对时间范围运行查询。如果我想找到所有文件(使用Kibana),其中hour_of_day的值在8到15之间,我应该可以使用:

hour_of_day:[8 TO 15]

但是,它没有返回任何结果。但如果我这样做:

hour_of_day:[8 TO 9]  OR hour_of_day:[10 TO 15]

我得到了预期的结果。我尝试了很多组合,它似乎取决于数字位数!我用较少的文件创建了另一个索引 - 7 - 我可以按预期使用hour_of_day:[8到15]。

所以我有一个解决方法,但我真的想知道可能导致这种行为的原因。有什么想法吗?

干杯。

1 个答案:

答案 0 :(得分:1)

我的猜测是您的索引可能不会将hour_of_day字段视为数字。请检查您的index mappings,确保使用适当的data type

存储它们