2017-08-24 1 views
0

私は、文書の構造を有しています。 ビジネスルール:ユーザーAは、少なくとも1つのユーザー権限がドキュメント権限と一致する場合にのみ、ドキュメントXを表示することができます。交差点が空でない場合は、数学的に入れて - 私はすべてのドキュメントのユーザーがアクセス権を持って見つける必要がある検索エンジンを構築してい弾性検索、次のように2つの配列の交点が空でないキシに文書が

["a", "b, ..., "g"] ∩ ["x", "y", "z"] ≠ ∅

。私はElastic Searchに提供していますが、ES DSLを使用して権限を制限するにはどうすればよいですか?どうもありがとう。

答えて

1

要素が一致する配列を渡すことができるterms queryが必要です。この一致文書には、提供された用語のいずれかが含まれています。一例として、permissions = ["a"、 "b"、 "c"]を含む文書は一致するが、permissions = ["a"、 "t"、 "c"]は含まれない。

{ 
    "query": { 
    "terms": { 
     "permissions": [ 
     "x", 
     "y", 
     "z", 
     "b" 
     ] 
    } 
    } 
} 
関連する問題