La structure de données de base pour un système de récupération de texte est un Index inversé . Il s'agit essentiellement d'une liste de mots trouvés dans la collection de documents avec une liste des documents dans lesquels ils apparaissent. Il peut également contenir des métadonnées sur l'occurrence de chaque document, telles que le nombre de fois où le mot apparaît.
Les documents contenant les mots peuvent être interrogés en faisant correspondre les termes de recherche. Pour déterminer la pertinence, une heuristique connue sous le nom de Cosine Ranking est calculé sur les hits. Cela fonctionne en construisant un vecteur à n dimensions avec un composant pour chacun des n termes de recherche. Vous pouvez également pondérer les termes de recherche si vous le souhaitez. Ce vecteur donne un point dans l'espace à n dimensions qui correspond à vos termes de recherche.
Un vecteur similaire basé sur les occurrences pondérées dans chaque document peut être construit à partir de l'index inversé avec chaque axe dans le vecteur correspondant à l'axe pour chaque terme de recherche. Si vous calculez un produit scalaire de ces vecteurs, vous obtenez le cosinus de l'angle entre eux. 1,0 équivaut à cos (0), ce qui supposerait que les vecteurs occupent une ligne commune à partir de l'origine. Plus les vecteurs sont proches, plus l'angle est petit et plus le cosinus est proche de 1,0.
Si vous triez les résultats de la recherche par le cosinus (ou si vous les placez dans une file d'attente prioritaire en tant que mg fait) vous obtenez le plus pertinent. Les algorithmes de pertinence plus intelligents ont tendance à jouer avec les poids des termes de recherche, en biaisant le produit scalaire en faveur des termes les plus pertinents.
Si vous voulez creuser un peu, Gestion des gigaoctets par Bell et Moffet traite de l'architecture interne des systèmes de récupération de texte.