【问题标题】:Using ranges for timestamp in query string query在查询字符串查询中使用时间戳范围
【发布时间】:2021-02-26 03:52:30
【问题描述】:

我正在使用查询字符串查询从 NAME 字段等于 TEST 并且它正在更新的 API 中检索数据。

Lastupdate 字段为时间戳格式 (2019-11-09 10:04:56.530000000)

我尝试这样做,它不会引发错误,但它显然不能正常工作,有些记录是几个月前的,有些是几年前的,我只想在今天查询。

/data/_search?q=name:TEST lastupdate:[now-1d/d TO now/D]

PS 我知道如何使用具有范围的 gte lt 属性的查询 dsl 来做到这一点,但是由于我将在 Power BI 中使用此数据,因此我必须通过 URL 将 json 提供给它,这就是为什么我正在寻找方法它在 URI 中。

【问题讨论】:

    标签: elasticsearch querydsl


    【解决方案1】:

    也许您只是在查询参数中缺少AND?以下是否为您提供了预期的结果?

    GET /data/_search?q=name:TEST+AND+lastupdate:[now-1d/d+TO+now/d]
    

    【讨论】:

    • 奇怪的是我有这个 API 的两个端点,一个是 prod,另一个是 staging。似乎暂存端点没有对日期数学做出反应 [now-1d]...我继续生产,还在字段之间添加了 AND,它可以工作:) 谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-09
    • 2023-03-25
    • 1970-01-01
    • 2013-10-22
    相关资源
    最近更新 更多