如何解决弹性的相对数据数学-今天找到所有东西
我正在尝试使用Elasticsearch进行非常简单的查询,但是我不认为我做错了什么,所以我在这里发布了一些指针。
我有一个弹性索引,每个文档的日期都像这样:
{
// edited for brevity
"releasedate": "2020-10-03T15:55:03+00:00",}
我正在使用django DRF进行类似的查询,我在&releasedate__gt=now-3d/d
处传递了该值
最终会出现这样的弹性范围查询。
{
"from": 0,"query": {
"bool": {
"filter": [
{
"range": {
"releasedate": {
"gt": "now/d-3d"
}
}
}
]
}
},"size": 10,"sort": [
"_score"
]
}
如果我想查看所有“昨天以来的文档”,以昨天releasedate
大于午夜的所有文档来看,我认为查询的关键部分需要像这样:
{
"query": {
"bool": {
"filter": [
{
"range": {
"releasedate": {
"gt": "now/d-1d"
}
}
}
]
}
}
}
所以我希望现在可以四舍五入到今天的00:00,然后再回溯一天。
因此,如果我在2020-10-04上执行此操作。我认为这将捕获发布日期为2020-10-03T15:55:03+00:00
的文档。
这是我的理由
将now/d
舍入将使我们进入2020-10-04T00:00
。
然后与-1d
一起回去一天,将带我们到2020-10-03T00:00
。
这应该包括文档,但是我没有看到它。我需要回溯超过一天才能找到文档,所以我需要使用now/d-2d
来找到匹配的文档。
有人知道为什么会这样吗?我不确定如何查看now/d-1d
在时区感知对象方面的评估结果,以进行检查-这就是我可能要达到的目标,但是我不知道Elastic的方法。
FWIW,这是使用Elastic 5.6。我们将尽快更新。
解决方法
我想说的是,一旦您四舍五入down to the nearest day(就像使用<!DOCTYPE html>
<div class = "outer_frame">
<div class = "inner_frame">
<label id = "name">Name</label>
<input type = "text" id = "name_in" disabled class = "field">
<label id = "tel">Telephone Number</label>
<input type = "text" id = "tel_in" disabled class = "field">
</div>
</div>
或now-2d/d
一样),now/d-2d
查询的间隔实际上将是一天-
换句话说,gt
是gt : 2020-10-03T00:00
>= 2020-10-0
4
。因此,您需要的是 T00:00
而不是gt
。它将作为gte
使用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。