Red Hat Training

A Red Hat training course is available for Red Hat Directory Server

14.4. LDAP 検索フィルター

検索フィルターでは、返されるエントリーを選択します。これらは ldapsearch コマンドラインユーティリティーで最もよく使用されます。ldapsearch を使用する場合は、ファイルに複数の検索フィルターがあり、各フィルターがファイルの別々の行にあるか、検索フィルターをコマンドラインに直接指定することができます。
検索フィルターの基本的な構文は、以下のとおりです。
attribute operator value 
以下に例を示します。
buildingname>=alpha
この例では、buildingname が属性、>= が演算子、および alpha が値となります。フィルターは、異なる属性をブール値演算子とともに使用するように定義することもできます。
注記
一致するルールフィルターを使用して部分文字列検索を実行する場合は、アスタリスク (*) 文字をワイルドカードとして使用し、ゼロ以上の文字を表します。
たとえば、文字 l で始まり文字 n で終わる属性値を検索するには、検索フィルターの値の部分に l*n を入力します。同様に、文字 u で始まるすべての属性値を検索するには、検索フィルターの値の部分に u* の値を入力します。
アスタリスク (*) 文字を含む値を検索するには、アスタリスクを指定のエスケープシーケンス \5c2a でエスケープする必要があります。たとえば、businessCategory 属性の値が Example*Net product line の社員をすべて検索するには、検索フィルターに以下の値を入力します。
Example\5c2a*Net product line
注記
一般的な間違いは、識別名で使用される属性に基づいてディレクトリーを検索することを仮定することです。識別名はディレクトリーエントリーの一意の識別子であり、検索キーとして使用できません。代わりに、エントリー自体に保存されている属性とデータのペアに基づいてエントリーを検索します。したがって、エントリーの識別名が uid=bjensen,ou=People,dc=example,dc=com の場合、dc=example の検索は、そのエントリーの属性として dc:example が明示的に追加されない限り、そのエントリーと一致しません。

14.4.1. 検索フィルターの属性の使用

検索の最も基本的なソートでは、エントリーに属性や特定の値があるかどうかを調べます。エントリーで属性を検索する 方法 は多数あります。属性が存在するかどうかを確認したり、完全値と一致するか、または部分的な値に対して一致を一覧表示したりすることができます。
存在 の検索では、値に関係なく、ワイルドカード (アスタリスク) を使用して、属性が設定されているすべてのエントリーを返します。たとえば、以下は、manager 属性を持つすべてのエントリーを返します。
"(manager=*)"
特定の値を持つ属性を検索することもできます。これは 等価 検索と呼ばれます。以下に例を示します。
"(cn=babs jensen)"
この検索フィルターは、Babs Jensen という共通名が含まれるすべてのエントリーを返します。多くの場合、等価検索では大文字と小文字が区別されません。
属性が言語タグに関連付けられた値を持つ場合は、すべての値が返されます。そのため、以下の 2 つの属性値は両方とも "(cn=babs jensen)" フィルターと一致します。
cn: babs jensen
cn;lang-fr: babs jensen
属性値 (部分文字列 インデックス) で部分的な一致を検索することもできます。以下に例を示します。
"(description=*X.500*)"
"(sn=*nderson)"
"(givenname=car*)"
部分文字列検索の長さは、「Indexed Substring Search の Width の変更」で説明されているように部分文字列のインデックス自体で設定されます。