Types d'indexation des attributs
L'indexation des attributs est justifiée dans les situations où les performances ou l'efficacité de requêtes s'appuyant sur leurs valeurs sont nécessaires, ce qui est le cas dans un usage typique d'un annuaire LDAP.
Pour chaque type d'attribut, le type d'indexation recommandé dépend des requêtes les plus fréquentes construites sur cet attribut, elles-mêmes dépendantes de l'usage de l'attribut: identifiant monolithique, valeur préfixée ou suffixée (ex: attribut étiqueté ou “scopé”), attribut composite, texte pouvant être recherché de façon approximative…
Le fonctionnement de l'indexation est dépendant de la technologie d'annuaire utilisée. Certaines implémentations ne nécessitent pas toujours une déclaration systématique des indices, ceux-ci pouvant être implicites ou auto-calculés en fonction des requêtes usuelles.
Le tableau ci-dessous est une indication générale des types d'indexation conseillés en fonction des types et usages d'attributs, inspirée de la terminologie d'OpenLDAP.
type d'index | définition | usages typiques |
---|---|---|
eq | égalité et tri (supérieur, inférieur) | Les identifiants, codes de nomenclature, valeurs numériques, dates, valeurs booléennes, DNs, drapeaux à valeurs multiples |
sub | recherche de sous-chaînes | Les libellés pouvant être inclus dans une requête, les attributs composites, les noms |
subinitial | recherche de préfixes | Certains libellés pouvant être inclus dans une requête, les attributs étiquetés, les URNs, tout attribut de type “code” faisant appel à un préfixe |
subfinal | recherche de suffixes | Certains libellés pouvant être inclus dans une requête, les attributs avec étendue (“scope”) |
pres | présence | les attributs dont la présence n'est pas systématique et peut être testée dans une requête: identifiants, drapeaux… |
Remarques:
- Les indices sont nécessaires pour les requêtes fréquentes, répétitives, et/ou qui nécessitent un temps de réponse bref. Il n'est pas indispensable d'indexer si la requête est occasionnelle et n'est pas contrainte par un délai de réponse. Attention cependant, sur de gros annuaires une requête non indexée peut engendrer un temps de réponse de plusieurs secondes ou minutes, et une charge non négligeable sur le serveur.
- L'indexation en “présence” n'est utile que pour les attributs qui ne sont présents que pour une fraction des entrées interrogées. Il est en général contre-productif d'indexer un attribut en présence s'il est renseigné sur la quasi-totalité des entrées.
- Les attributs qui sont simplement lus par une requête mais jamais utilisés comme critère de recherche n'ont pas besoin d'être indexés (exemple: jpegPhoto).
- Certains types d'attributs n'acceptent pas tous les types d'indexation: cela dépend de la définition ou non des règles correspondantes dans le schéma de l'attribut (égalité, triage, sous-chaîne…).