検索対象の決定
ディレクトリを検索する前に、アプローチに基づいて検索の実行方法を検討してください。 返されるデータとプロパティは、検索を開始するためにバインドする場所、検索の深さ、クエリ フィルター、および検索のパフォーマンスに影響します。
たとえば、姓 Smith を持つすべてのユーザー オブジェクトを検索する場合は、次のようにします。
面積 | 形容 |
---|---|
検索する場所 | ドメイン内の特定のコンテナーまたは組織単位 (OU)、特定のドメイン、特定のドメイン ツリー、またはフォレスト全体。 特定のコンテナーまたはドメイン内のオブジェクトを検索する場合、ドメイン ツリーでサブツリー検索を実行する代わりに、そのコンテナーまたはドメインに直接バインドすることで、検索クエリのパフォーマンスが向上します。 |
検索の種類 | 既に認識されている識別名 (DN) を持つ特定のオブジェクトのプロパティの存在を確認または取得する場合は、バインド先のオブジェクトのみを検索するベース検索を実行する必要があります。 オブジェクトが特定のコンテナーの直接の子孫であることがわかっている場合は、そのコンテナーにバインドし、1 レベルの検索を実行します (attributeSchema と classSchema スキーマ コンテナー内のオブジェクト、および拡張権限コンテナー内の拡張権限オブジェクトが適しています)。 オブジェクトの場所がわからない場合、またはバインド先のオブジェクトとその下にあるすべての子オブジェクトをディレクトリ階層で検索する場合は、サブツリー検索を実行します。 |
可能な場合はインデックスを使用する | 最後に、特定のクラスのオブジェクトを検索する場合、クエリ フィルターには、そのクラスに対して定義されているプロパティを評価する式が必要です。 グループ オブジェクトを検索するには、フィルターに式 (objectCategory=group) を含めます。 ユーザー オブジェクトを検索するには、(&(objectClass=user)(objectCategory=person)) を指定します。これは、コンピューター クラスがユーザー クラスから派生するためです。したがって (objectClass=user) はユーザーとコンピューターの両方を返します。また、連絡先オブジェクトとユーザー オブジェクトの両方に個人の objectCategory があるため、(objectCategory=person) はユーザーと連絡先の両方を返します。 詳細については、「オブジェクト クラスとオブジェクト カテゴリの とインデックス付き属性の を参照してください。 |