【发布时间】:2020-05-23 10:38:34
【问题描述】:
我有一个问题,我需要编写一个弹性搜索查询来提供我所寻找的内容, 首先,这是我在 db 中查询的 JSON 对象的一项:
{
"data": {
"circuit": {
"version": "2.12.2",
"createdOn": "2020-02-04T10:38:11.282",
"expirationDate": "2020-02-06T05:50:00.000",
"expiredSoonNotification": false
}
},
"createdDate": "2020-02-04T10:38:11.282"
}
我需要的是获取所有接受此条件的项目:
现在
含义:我需要从现在开始获取所有 expireDate 小于 10% 的项目 我希望我能解释我的问题,因为我不知道如何使用 lt og gt
中的字段我之前做过的事情就是这样,但没有用:
{
"query": {
"bool": {
"must_not": [
{
"bool": {
"must": [
{
"range": {
"data.circuit.expirationDate": {
"gt": "now",
"lt": ("data.circuit.expirationDate" - "createdDate")/10 + now
}
}
}
]
}
}
]
}
},
"sort": [
{
"createdDate": {
"order": "desc"
}
}
]
}
谢谢
【问题讨论】:
-
您的映射是什么,到目前为止您尝试过什么?请看stackoverflow.com/help/on-topic
-
@ibexit 我添加了我到目前为止尝试过的内容
-
只是为了确定,这是搜索文档的公式:
expirationDate > now && expirationDate < (expirationDate - createdDate)/10 + now? -
@ibexit 没错
标签: json elasticsearch elasticsearch-5