elasticsearch에서 특정 문서를 보지 못하도록 특정 사용자를 제외시키는 보안 필터를 만들려고합니다. 예를 들어, 문서에 "ABC : 123"및 "ABC : XYZ"가 포함되어있는 경우 사용자는 해당 문서를보기 위해 프로필에있는 두 가지 모두 있어야합니다. 우리는 콧수염 주머니를 사용하여 파리에서 이것을 만들고 있습니다. 내 첫 번째 시도는 다음과 같습니다.elasticsearch에서 보안 필터 만들기
"bool": {
"filter": {
"bool": {
"minimum_should_match": 1,
"should": {
"bool": [{
"must_not": {
"prefix": {
"controlSet": "ABC:"
}
}
},{
"must": {
"terms": {
"controlSet": ["ABC:123","ABC:XYZ"]
}
}
}]
}
}
}
}
그러나 한 명의 사용자가 여러 명의 문서를 볼 수있게되었습니다. 문서에는 사용자가 일치시켜야하는 컨트롤의 하위 집합이 있어야합니다. 따라서 사용자에게 "ABC : XYZ"가있는 경우에만 문서에 "ABC : XYZ"가 포함되어 있어도 "ABC : 123"이있는 문서를 볼 수 없어야합니다.
실종 신고 방법은 있습니까? 현재 우리는 시스템에서 제어를 열거하고이를 must_not에 추가하지만 주기적으로 변경을 제어하므로 목록을 수동으로 관리하지 않을 것입니다.
'controlSet': [ "ABC : 123"]'도 일치한다는 문제가 있습니다. 사용자가 문서에있는 컨트롤의 수퍼 셋을 갖도록 강제 할 수있는 방법이 필요합니다. – Derek