elasticsearch - 为什么我的时间戳范围查询什么都不返回

标签 elasticsearch elasticsearch-opendistro

我正在使用elasticsearch open发行版来创建警报系统。但是我的elasticsearch查询有一个问题:

"search": {
                "indices": ["test_alert"],
                "query": {
                    "size": 3,
                    "aggregations": {},
                    "query": {
                        "bool": {
                            "filter": {
                                "range": {
                                    "@timestamp": {
                                        "gte": "now-1h",
                                        "lte": "now",
                                        "format": "epoch_second"
                                    }
                                }
                            }
                        }
                    }
                }
            }

这是我在开放式显示器中使用的查询。问题是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 - 为什么我的时间戳范围查询什么都不返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61125252/

相关文章:

elasticsearch - javascript的弹性转储文件内存不足

elasticsearch - Opendistro Elasticsearch将管理员级别特权授予匿名用户

elasticsearch - 弹性-选择前5个匹配后进行过滤

elasticsearch - 无法在Elasticsearch查询中轻松使用

java - 无法使用 ElasticSearch Java API 检索嵌套对象

elasticsearch - 如何在Kibana仪表板版本6.6.0中更改字体大小?

elasticsearch - Java-Elasticsearch:根据距离排序

macos - 无法使用metricbeat连接到OpenDistro Elasticsearch

elasticsearch - elasticsearch 6无法安装插件org.wikimedia.search:extra不兼容

elasticsearch - 使用Open Distro在Elasticsearch中禁用状态管理历史记录