elasticsearch日期范围昨天得到

Ale*_*ard 6 elasticsearch

我正在寻找一种从"昨天"获取数据的方法,而不是:

"range" : {
    "price" : {
        "gt" : "2014-11-24",
        "lt" : "2014-11-26"
    }
}
Run Code Online (Sandbox Code Playgroud)

我想要像:

"range" : {
    "price" : {
        "eq" : "2014-11-25"
    }
}
Run Code Online (Sandbox Code Playgroud)

有人认为这可能吗?

我想的是:

"range" : {
    "price" : {
        "gt" : "now-2d",
        "lt" : "now"
    }
}
Run Code Online (Sandbox Code Playgroud)

但我想从00:00 am00:00 pm获取数据

And*_*fan 11

试试这个:

  "query": {
    "range": {
      "price": {
        "gt": "now-1d/d",
        "lt": "now/d"
      }
    }
  }
Run Code Online (Sandbox Code Playgroud)

  • 这将返回空值。它应该是 `now-2d/d` 而不是 `1`;或者您可以将 `gt` 更改为 `gte` 来修复它。 (2认同)

Mne*_*quo 5

@andrei-stefan 的答案是这样做的方法,但我想为其他遇到此问题的人添加一些额外的示例。

如果您想从昨天下午 12:00 到下午 1:00 之间而不是一整天获取数据,您可以使用更多的日期数学来做到这一点:

  "query": {
    "range": {
      "price": {
        "gt": "now-1d/d+12h",
        "lt": "now-1d/d+13h"
      }
    }
  }
Run Code Online (Sandbox Code Playgroud)

https://www.elastic.co/guide/en/elasticsearch/reference/current/common-options.html#date-math