Dissection d'un moteur de recherche (3): l'index inversé et les attributs
Par Mathieu Lecarme le lundi, 21 mai 2007, 19:30 - Lien permanent
Quand on parle d'indexation, c'est qu'il y a un index. L'astuce de base de la recherche full text, et d'utiliser un index, le même que l'on trouve à la fin d'un livre de recettes de cuisines.
Un document est constitué de mots, l'index contiendra donc les différents mots, qui pointeront sur les n documents correspondants.
Opération booléenne
Un mot clef permet d'extraire un ensemble de documents, lorsque l'on a plusieurs mots, on peut commencer à utiliser la théorie des patates (ou des ensembles, quand on est rigoureux). Un ET devient une intersection, un NON une exclusion, un OU une inclusion. Chose pratique, les ensembles (Set en anglais) font parti des outils de base en informatiques. Php fait encore figure de sauvage en gérant toutes les collections avec son Array, et Python s'est assagi depuis la version 2.4 avec un Set primitif. Java, avec ses Collections pédagogiques, gère les Set depuis l'antique version 1.2 .
Attributs
Pour affiner la notion de mots attachés à un document, on peut le qualifier (titre, description, corps ...), mais aussi utiliser des attributs qui sont gérés comme un bloc, et non comme un ensemble de mots, une catégorie, par exemple, ou une date. Un attribut virtuel permet de rassembler différents attributs, c'est le tout. Je peux rechercher titre:carotte ou carotte qui implicitement revient à all:carotte.
Tri
Un ensemble est par définition non ordonné, il faut donc une deuxième étape de tri, une fois la sélection faite. Cet aspect important sera traité dans un autre billet.

