我有一个名为rating的嵌套字段的以下映射:
"ratings" : {
"type" : "nested",
"properties" : {
"rating" : {
"type" : "double"
},
"user_id" : {
"type" : "long"
}
}
}
我正在尝试查找嵌套字段中不存在user_id的所有记录。
这就是我所拥有的,但是当有多个嵌套文档并且任何文档都不是user_id 1时,它就失败了。
{
"nested": {
"path": "ratings",
"query": {
"bool": { "must_not": [
{ "term": { "ratings.user_id": 1}}
]}}}}
答案 0 :(得分:0)
如果我正确理解您,并且您要做的是查找没有嵌套文档的文档具有特定user_id
的文档,那么此查询似乎可以执行您想要的操作(假设您想要用户2
未评级的文档):
POST /test_index/_search
{
"query": {
"constant_score": {
"filter": {
"not": {
"filter": {
"nested": {
"path": "ratings",
"filter": {
"term": {
"ratings.user_id": 2
}
}
}
}
}
}
}
}
}
这是我用来测试它的代码:
http://sense.qbox.io/gist/afd319e64403a7f995cbf1e9f40e5c5948729193