elasticsearch 弹性Lucene查询无法与日期一起正常工作,elasticsearch,lucene,elastic-stack,elasticsearch,Lucene,Elastic Stack" /> elasticsearch 弹性Lucene查询无法与日期一起正常工作,elasticsearch,lucene,elastic-stack,elasticsearch,Lucene,Elastic Stack" />

elasticsearch 弹性Lucene查询无法与日期一起正常工作

elasticsearch 弹性Lucene查询无法与日期一起正常工作,elasticsearch,lucene,elastic-stack,elasticsearch,Lucene,Elastic Stack,我有一个简单的任务: 获取上周状态为“已付”或“已完成”的弹性索引中的所有项目 我尝试的是: GET /my_index/_search?q=((status:paid or status:done) and (created_at > "now-7d/d")) 有趣的是,如果我这样做的话 GET /my_index/_search?q=((status:paid or status:done) 我得到大约4k的结果,但如果我做整个查询,我得到600k。看来,如果我添加第二部分,某些东

我有一个简单的任务:

获取上周状态为“已付”或“已完成”的弹性索引中的所有项目

我尝试的是:

GET /my_index/_search?q=((status:paid or status:done) and (created_at > "now-7d/d"))
有趣的是,如果我这样做的话

GET /my_index/_search?q=((status:paid or status:done)
我得到大约4k的结果,但如果我做整个查询,我得到600k。看来,如果我添加第二部分,某些东西就会停止正常工作

我在Kibana的discover选项卡中测试了该查询,它在那里工作正常,但由于某些原因,它与API不兼容。任何帮助都将不胜感激


PS:我不能在正文中进行查询,因为那里有额外的聚合筛选器,我至少还没有找到与上述筛选器组合的方法。

您的思路是正确的,但您有三个小语法错误,导致查询无法按预期工作

  • (创建于>“now-7d/d”)
    更改为
    (创建于>“now-7d/d”)

  • 更改为
    ,当前
    (x和y)
    正在被解析为
    x或和或y
    ,这就是为什么会得到这么多结果

  • 更改为
    ,同样的概念会导致错误匹配

要将查询汇总为以下内容:

GET/my\u index/\u search?q=((状态:支付或状态:完成)和(创建于:>“now-7d/d”)