Choix des éléments à rechercher

Avant d’effectuer une recherche dans un annuaire, réfléchissez à la façon dont votre recherche s’effectuera en fonction de votre approche. Les données et les propriétés à retourner affectent l’emplacement où vous liez pour démarrer une recherche, la profondeur de votre recherche, votre filtre de requête et les performances de recherche.

Par exemple, si vous souhaitez rechercher tous les objets utilisateur portant le nom de famille Smith :

Domaine Description
Où rechercher Conteneur ou unité d’organisation (UO) spécifique au sein d’un domaine, d’un domaine spécifique, d’une arborescence de domaine spécifique ou de l’ensemble de la forêt. Si vous recherchez des objets dans un conteneur ou un domaine spécifique, la requête de recherche s’exécute mieux en lisant directement à ce conteneur ou domaine au lieu d’effectuer une recherche de sous-arborescence dans une arborescence de domaines.
Type de recherche Si vous vérifiez l’existence ou récupérez les propriétés d’un objet particulier qui a un nom unique (DN) que vous connaissez déjà, vous devez effectuer une recherche de base, qui recherche uniquement l’objet auquel vous avez lié.
Si vous savez qu’un objet est un descendant direct d’un conteneur particulier, liez à ce conteneur et effectuez une recherche à un niveau (les objets attributeSchema et classSchema dans le conteneur de schéma et les objets à droit étendu dans le conteneur de droits étendus sont de bons exemples).
Si vous ne savez pas exactement où se trouve l’objet, ou si vous souhaitez rechercher l’objet auquel vous avez lié et tous les objets enfants en dessous dans la hiérarchie de répertoires, effectuez une recherche de sous-arborescence.
Utiliser des index dans la cas où cela est possible Enfin, si vous recherchez une classe d’objet spécifique, le filtre de requête doit avoir des expressions qui évaluent les propriétés définies pour cette classe.
Pour rechercher des objets de groupe, incluez l’expression (objectCategory=group) dans le filtre. Pour rechercher des objets utilisateur, spécifiez (&(objectClass=user)(objectCategory=person)) car la classe d’ordinateur dérive de la classe user. Par conséquent, (objectClass=user) renvoie à la fois les utilisateurs et les ordinateurs, et aussi parce que les objets contact et utilisateur ont un objectCategory de person, donc (objectCategory=person) renvoie à la fois les utilisateurs et les contacts.
Pour plus d’informations, consultez Classe d’objet et Catégorie d’objet et Attributs indexés.