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