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”)