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



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

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,就像有一天周围的边缘一样?我正在尝试制作的程序旨在查询从今天、昨天等的所有结果,从一天开始的那一秒到当天的午夜,我必须为此切换我的日期数学吗?

谢谢

我认为这篇文章回答得很清楚: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

最新更新