【发布时间】:2014-10-02 00:01:35
【问题描述】:
我正在尝试针对 elasticsearch 运行查询,以查找满足以下条件之一的文档:
- 文档缺少给定字段 (
tags) 或 - 文档具有值
foo作为tags数组的元素
问题是我当前的查询将返回具有tags 字段的文档,该字段的值为空数组。这大概是因为 elasticsearch 将空数组视为与根本没有该字段相同的东西。这是我正在运行的返回错误结果的完整查询:
{
"from": 0,
"query": {
"filtered": {
"filter": {
"bool": {
"must": [
{
"exists": {
"field": "_rankings.public"
}
},
{
"or": [
{
"missing": {
"existence": true,
"field": "tags",
"null_value": false
}
},
{
"terms": {
"execution": "or",
"tags": [
"foo"
]
}
}
]
}
]
}
},
"query": {
"match_all": {}
}
}
},
"size": 10000,
"sort": [
{
"_rankings.public": {
"ignore_unmapped": true,
"order": "asc"
}
}
]
}
【问题讨论】:
标签: elasticsearch