尝试排除其中子文档之一与查询不匹配的顶级文档。
对于下面的示例,我尝试排除其嵌套作业之一具有的所有文档current: true
,并与company name: Elastic
。但由于嵌套作业文档之一与current: false
和公司name: Elastic
,该文档被返回。我正在使用嵌套查询,该查询必须匹配公司名称和过滤器,其中 current: false。我怎样才能使以下文件不被退回?
"name": "john doe",
"jobs": [
{
"title": "Vice President",
"current": true,
"company": {
"name": "Elastic"
}
},
{
"title": "CEO",
"current": false,
"company": {
"name": "Elastic"
}
...
这个怎么样?Note我假设你有一个.keyword
sub0field 基本上与大写字母完全匹配。如果您有不同的情况,请相应地更改字段名称:
{
"query": {
"bool": {
"must_not": [
{
"nested": {
"path": "jobs",
"query": {
"bool": {
"must": [
{
"term": {
"jobs.current": {
"value": "true"
}
}
},
{
"term": {
"jobs.company.name.keyword": {
"value": "Elastic"
}
}
}
]
}
}
}
}
]
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)