Et inverteret indeks er en datastruktur, hvori den tilsvarende liste for hvert ord i en samling af dokumenter viser alle dokumenterne i den samling, hvori det forekommer. Det omvendte indeks bruges til at søge gennem tekster.
Der er to varianter af det omvendte indeks:
Lad os beskrive, hvordan vi løser problemet med at finde dokumenter, der indeholder alle ordene fra søgeforespørgslen . Når du behandler en søgeforespørgsel på et enkelt ord, er svaret allerede i det omvendte indeks - tag blot den liste, der svarer til ordet fra forespørgslen. Ved behandling af en flerordsforespørgsel tages skæringspunktet mellem listerne svarende til hvert af forespørgselsordene.
Normalt, i søgemaskiner , efter opbygning af en liste over dokumenter, der indeholder ord fra en forespørgsel ved hjælp af et omvendt indeks, rangeres dokumenterne fra listen . Det omvendte indeks er den mest populære datastruktur, der bruges til informationssøgning [2] .
Lad os have et korpus af tre tekster , og så vil det omvendte indeks se sådan ud: "it is what it is""what is it""it is a banana"
"a": {2} "banan": {2} "er": {0, 1, 2} "det": {0, 1, 2} "hvad": {0, 1}Her angiver tallene numrene på de tekster, hvor det tilsvarende ord forekommer. Behandling af "what is it"søgeforespørgslen vil derefter give følgende resultat .
På listen over forekomster af et ord i dokumenter er der ud over dokumenternes id normalt også angivet faktorer ( TF-IDF , binær faktor: "om ordet rammer titlen eller ej", andre faktorer), som er brugt i ranglisten. Indekset kan bygges ikke efter alle ordformer , men efter lemmaer (ifølge ords kanoniske former). Stopord kan udelukkes og et indeks ikke bygges til dem, forudsat at hvert af dem forekommer i næsten alle dokumenter i korpuset. For at fremskynde beregningen af skæringspunkter bruges heuristik af skip-pointere . Ved behandling af anmodninger, der indeholder mange ord, bruges quorum-funktionen, som springer til næste trin i rangeringen af den del af dokumenter, hvor ikke alle ord fra anmodningen blev fundet.