我有一個包含多個角色文件/右定義爲嵌套對象的數組:elasticsearch - 通過精確匹配一個嵌套的對象找到文件
{
...
'roleRights': [
{'roleId':1, 'right':1},
{'roleId':2, 'right':1},
{'roleId':3, 'right':2},
]
}
我想具體roleRights過濾出的文檔,但我查詢似乎混合組合。這是我filterQuery爲「僞」
boolFilter > must > termQuery >roleRights.roleId: 1
boolFilter > must > termQuery >roleRights.type: 2
以上應該只返回已分配右2
作用1
- 文件,但它看起來像我得到
- 所有具有角色1分配的文檔無視權利
- 以及所有權利爲2的所有文檔均不承擔任何責任。
任何提示?
你可以分享你的映射呢? 'roleRights'很可能不是嵌套類型,它應該是。 – Val
你是對的。 roleRights未映射爲嵌套。這真的有必要嗎?我是否需要使用nestedQueries? – Philipp
是的,這是必要的。請參閱下面的答案。 – Val