ara*_*ibi 1 elasticsearch elastica
我的索引有一个“valid_until”字段,该字段可以为空或有效的日期时间。我想编写一个查询来从索引中获取所有文档,并仅在“valid_until”具有有效日期时应用范围过滤器。
部分指数数据:
[
['name' => 'book1', 'valid_until' => '2019-09-30 18:00:00'],
['name' => 'book2', 'valid_until' => ''],
['name' => 'book3', 'valid_until' => '2019-09-20 18:00:00'],
],
Run Code Online (Sandbox Code Playgroud)
这是我尝试过的查询:
{
"query": {
"bool": {
"should": [
{
"range": {
"valid_until": {
"gte": "2019-09-22 00:00:00"
}
}
},
{
"bool": {
"must_not": {
"exists": {
"field": "valid_until"
}
}
}
}
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果将来有人需要这个,我就是这样解决的:
{
"query": {
"bool": {
"filter": [
{
"bool": {
"should": [
{
"range": {
"valid_until": {
"gte": "now"
}
}
},
{
"bool": {
"must_not": {
"exists": {
"field": "valid_until"
}
}
}
}
]
}
}
],
"must_not": [],
"should": [],
"must": []
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2329 次 |
| 最近记录: |