Mysql
 sql >> Database >  >> RDS >> Mysql

La pertinenza della ricerca full-text è misurata in?

La struttura dei dati di base per un sistema di recupero del testo è un Indice invertito . Questo è essenzialmente un elenco di parole trovate nella raccolta di documenti con un elenco dei documenti in cui si trovano. Può anche avere metadati sull'occorrenza per ciascun documento, come il numero di volte in cui la parola appare.

I documenti contenenti le parole possono essere interrogati facendo corrispondere i termini di ricerca. Per determinare la pertinenza, un'euristica nota come Cosine Ranking è calcolato sugli hit. Questo funziona costruendo un vettore n-dimensionale con un componente per ciascuno degli n termini di ricerca. Se lo desideri, puoi anche pesare i termini di ricerca. Questo vettore fornisce un punto nello spazio n-dimensionale che corrisponde ai termini di ricerca.

Un vettore simile basato sulle occorrenze ponderate in ciascun documento può essere costruito dall'indice invertito con ciascun asse nel vettore corrispondente all'asse per ciascun termine di ricerca. Se calcoli un prodotto scalare di questi vettori ottieni il coseno dell'angolo tra di loro. 1.0 è equivalente a cos (0), che presuppone che i vettori occupino una linea comune dall'origine. Più vicini sono i vettori, più piccolo è l'angolo e più vicino è il coseno a 1.0.

Se ordini i risultati della ricerca in base al coseno (o li inserisci in una coda prioritaria come mg fa) ottieni il più rilevante. Algoritmi di pertinenza intelligenti tendono a giocherellare con i pesi dei termini di ricerca, distorcendo il prodotto scalare a favore di termini con un'elevata pertinenza.

Se vuoi scavare un po', Gestione dei Gigabyte di Bell e Moffet discute l'architettura interna dei sistemi di recupero del testo.