我正在尝试提取缺少字段" topic.description" 的文档,并匹配字词" fundingUnder.programme":&#34 ; ABC"
映射:
...
"fundedUnder": {
"properties": {
"programme": {
"type": "string"
},
"subprogramme": {
"type": "string"
}
}
},
"topics": {
"type": "nested",
"include_in_parent": true,
"properties": {
"code": {
"type": "string",
"analyzer": "analyzer_keyword"
},
"description": {
"type": "string",
"analyzer": "analyzer_keyword"
},
"title": {
"type": "string",
"analyzer": "analyzer_keyword"
}
}
},
...
我的查询如下:
{
"query": {
"filtered": {
"filter": {
"bool": {
"must": [
{
"missing": {
"field": "topics.description"
}
},
{
"term": {
"fundedUnder.programme" : "ABC"
}
}
]
}
}
}
}
}
这个查询一无所获,这是错误的,因为我在索引中有很多文件,包括fundingUnder.programme ==" ABC"并缺少字段topic.description。
提前致谢。
ElasticSearch版本1.7.5
答案 0 :(得分:1)
我相信这应该有效:
编辑:更新为使用版本1.7查询DSL
{
"query": {
"filtered": {
"query": {
"match": { "fundedUnder.programme" : "ABC" }
},
"filter": {
"missing": { "field": "topics.description" }
}
}
}
}