在我的项目中,我有文档“ Book”和“ Chapter”。章是本书的孩子。 章节是否可以包含字段“字幕”。在一本书中,可能会有带或不带字幕的章节。
现在,我想建立一个查询来查找所有书籍,这些书籍的章节均未定义字幕。用空字符串定义字幕,而不是不定义字幕,对我来说不是一个选择。当然,如果不是一个选择。
我接下来尝试过:
"must_not" : [{
"has_child" : {
"query" : {
"exists" : {
"field" : "subtitle",
"boost" : 1.0
}
}
},......
}],
"must" : [{
"has_child" :{
"query" : {
"match_all" : {
"boost" : 1.0
}
}
}
}....]...
但是,很明显,只有当孩子是单身或所有孩子都没有字幕时,它才有效 matchAll需要过滤掉没有章节的书。
---更新----
映射:
{
"book" : {
"_all" : {
"enabled" : false
},
"properties" : {
"bookID" : {
"type" : "integer"
},
"publicationDate" : {
"type" : "date"
},
"author" : {
"type" : "text"
}
}
}
{
"chapter" : {
"_all" : {
"enabled" : false
},
"_parent" : {
"type" : "book"
},
"properties" : {
"bookID" : {
"type" : "integer"
},
"subtitle" : {
"type" : "text"
}
}
}
例如,我有5本书。 1其中一个根本没有章节, 2-100%的章节带有副标题,2-其他章节混合在一起。有些章节带有字幕,有些则没有字幕。
我希望结果只得到最后两本书