弹性搜索日期数学问题,不确定边界

时间:2017-07-17 13:49:00

标签: javascript elasticsearch

我正在尝试从数据库中查询大量记录,但对日期数学有点困惑。以下是我的其中一个块的示例:

 var searchParams = {
                    "query": {
                        "bool" : {
                            "must" : [
                                { "term": {  } },
                                { "term": {  } },
                                { "range": {
                                    "dateUTC": {
                                        "gt": "now-7d/d",
                                        "lt": "now/d",
                                    "format": "basic_date_time"
                                    }
                                }
                                }
                            ]
                        }
                    }
                };

现在,如果我想仅查询今天的所有结果,我会使用gt:now-1d / d,lt:now / d。或者我会使用gt:now-2d / d,lt:now / d,就像一天左右的边缘一样?我正在尝试制作的程序是为了查询今天,昨天等所有结果,从第二天开始到当天的午夜,我是否必须为此更改日期数学?

由于

1 个答案:

答案 0 :(得分:0)

我认为这篇文章非常清楚地回答:https://discuss.elastic.co/t/several-date-math-questions/27453/3

回答你的问题:

  • "仅查询今天的所有结果":gt: now/d, lt:now
  • 从今天午夜到2天前午夜:gt:now - 2d/d, lt:now/d

/ d这里采用公式计算的日期,并将时间调整为午夜,所以如果现在是 7月18日00:31:43 now/d会产生 7月18日00:00:00