我正在尝试执行一个指定了多个字段的elasticsearch查询。这是一些伪代码,希望能说明我的意图:
"query" : {
"query_string" : { "query" : "william" }
},
"filter" : {
"missing" : { "field" : "membership_expires_on" }
},
"filter" : {
"missing" : { "field" : "gender" }
},
"filter" : {
"terms" : { "status" : "p"}
},
"filter" : {
"terms" : { "unit_id" : "4"}
}
我正在尝试将所有这些过滤器放在一起,但是从elasticsearch doc我无法弄清楚如何将这些特定过滤器放入单个查询中。任何帮助将不胜感激!
更新:这是我到目前为止所拥有的:
{
"from": 0,
"query": {
"filtered": {
"filter": {
"bool": {
"must": [
{
"missing": {
"field": "membership_expires_on"
}
},
{
"term": {
"status": "p"
}
},
{
"missing": {
"field": "gender"
}
},
{
"term": {
"unit": "4"
}
}
]
}
},
"query": {
"query_string": {
"query": "william"
}
}
}
},
"size": 10
}
但这没有结果,所以我做错了。我是否以非法方式使用内部阵列的bool过滤器?
更新2 :我已经确认上面的JSON确实是一个有效的查询,所以我的数据/索引可能有些不对劲。那将是另一天的问题: - )