elasticsearch日期范围昨天得到

时间:2014-11-26 15:08:27

标签: elasticsearch

我正在寻找从“昨天”获取数据的方法 而不是:

"range" : {
    "price" : {
        "gt" : "2014-11-24",
        "lt" : "2014-11-26"
    }
}

我想要像:

"range" : {
    "price" : {
        "eq" : "2014-11-25"
    }
}

有人认为这可能吗?

我想的是:

"range" : {
    "price" : {
        "gt" : "now-2d",
        "lt" : "now"
    }
}

但我想从 00:00 am 获取数据到 00:00 pm

3 个答案:

答案 0 :(得分:10)

试试这个:

  "query": {
    "range": {
      "price": {
        "gt": "now-1d/d",
        "lt": "now/d"
      }
    }
  }

答案 1 :(得分:2)

来自@ andrei-stefan的答案就是这样做的方法,但是我想为其他人提供一些额外的例子。

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

  "query": {
    "range": {
      "price": {
        "gt": "now-1d/d+12h",
        "lt": "now-1d/d+13h"
      }
    }
  }

push

答案 2 :(得分:0)

最好添加时区。例如,如果您在CST6CDT中,则要从00:00到23:59提取数据,请使用此代码-

"query": {
    "range": {
      "price": {
        "gt": "now/d-1d/d",
        "lt": "now/d-1d/d",
        "time_zone":"CST6CDT"
      }
    }
  }