-
Language:
日本語
-
Language:
日本語
Red Hat Training
A Red Hat training course is available for Red Hat Directory Server
14.4.3. 複合検索フィルターの使用
複数の検索フィルターコンポーネントは、以下のように接頭辞表記で表現されるブール値演算子を使用して組み合わせることができます。
(Boolean-operator(filter)(filter)(filter)...)
boolean-operator は、表14.2「検索フィルターのブール値演算子」に一覧表示されているブール値演算子の 1 つになります。
たとえば、このフィルターは、指定された値を含まないすべてのエントリーを返します。
(!(cn=Ray Kultgen)) (!(objectClass=person))
当然のことながら、複合検索フィルターは、入れ子にして完成された表現にしたときに最も有効です。
(Boolean-operator(filter)((Boolean-operator(filter)(filter)))
これらの複合フィルタは、他のタイプの検索 (近似、部分文字列、その他の演算子) と組み合わせることで、非常に詳細な結果を得ることができます。たとえば、このフィルターは組織単位が Marketing で、説明フィールドに部分文字列 X.500 が含まれていないすべてのエントリーを返します。
(&(ou=Marketing)(!(description=*X.500*)))
このフィルターは、組織単位が Marketing で、部分文字列 X.500 を持たないエントリーや 、 Julie Fulmer または Cindy Zwaska をマネージャーとして持つエントリーを返すように拡張できます。
(&(ou=Marketing)(!(description=*X.500*))(|(manager=cn=Julie Fulmer,ou=Marketing,dc=example,dc=com)(manager=cn=Cindy Zwaska,ou=Marketing,dc=example,dc=com)))
このフィルターは、人を表すことなく、共通名が printer3b と似たすべてのエントリーを返します。
(&(!(objectClass=person))(cn~=printer3b))
表14.2 検索フィルターのブール値演算子
演算子 | 記号 | 説明 |
---|---|---|
AND | & | 文が true になるには、指定したフィルターはすべて true である必要があります。例: (&(filter)(filter)(filter)...) |
OR | | | 文が true になるには、少なくとも 1 つのフィルターを true にする必要があります。例: (|(filter)(filter)(filter)...) |
NOT | ! | 文が true になるには、指定の文が true にならないようにする必要があります。NOT 演算子の影響を受けるフィルターは 1 つだけです。例: (!(filter)) |
ブール値は、以下の順番で評価されます。
- 一番内側から外側に向かって、親表現が優先されます。
- 左から右へのすべての式。