为什么我的时间戳范围查询没有返回任何内容
Why is my timestamp range query returning nothing
我正在使用 elasticsearch open distro 来创建警报系统。但是我的 elasticsearch 查询有一个问题:
"search": {
"indices": ["test_alert"],
"query": {
"size": 3,
"aggregations": {},
"query": {
"bool": {
"filter": {
"range": {
"@timestamp": {
"gte": "now-1h",
"lte": "now",
"format": "epoch_second"
}
}
}
}
}
}
}
这是我在我的 open-distro 监视器中使用的查询。问题是 now-1h
似乎不起作用,我总是得到一个空的结果。我尝试使用原始时间戳(以便匹配并获得结果)并且效果很好。我不明白为什么当我使用 now-1h
.
时范围根本不起作用
这是我的映射:
properties": {
"timestamp": {
"type": "date",
"format": "epoch_second"
},
"value": {
"type": "long"
}
}
感谢您的帮助!
您的映射显示 timestamp
,但您的查询显示 @timestamp
。两者需要一致命名。顺便说一句,@timestamp
没有什么特别的——它只是一个约定。您可以对任何日期时间字段执行 range.gte now-1h
。
正确映射:
PUT test_alert
{
"mappings": {
"properties": {
"@timestamp": {
"type": "date",
"format": "epoch_second"
},
"value": {
"type": "long"
}
}
}
}
我正在使用 elasticsearch open distro 来创建警报系统。但是我的 elasticsearch 查询有一个问题:
"search": {
"indices": ["test_alert"],
"query": {
"size": 3,
"aggregations": {},
"query": {
"bool": {
"filter": {
"range": {
"@timestamp": {
"gte": "now-1h",
"lte": "now",
"format": "epoch_second"
}
}
}
}
}
}
}
这是我在我的 open-distro 监视器中使用的查询。问题是 now-1h
似乎不起作用,我总是得到一个空的结果。我尝试使用原始时间戳(以便匹配并获得结果)并且效果很好。我不明白为什么当我使用 now-1h
.
这是我的映射:
properties": {
"timestamp": {
"type": "date",
"format": "epoch_second"
},
"value": {
"type": "long"
}
}
感谢您的帮助!
您的映射显示 timestamp
,但您的查询显示 @timestamp
。两者需要一致命名。顺便说一句,@timestamp
没有什么特别的——它只是一个约定。您可以对任何日期时间字段执行 range.gte now-1h
。
正确映射:
PUT test_alert
{
"mappings": {
"properties": {
"@timestamp": {
"type": "date",
"format": "epoch_second"
},
"value": {
"type": "long"
}
}
}
}