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

Fuldtekst søgerelevans måles i?

Den grundlæggende datastruktur for et tekstgenfindingssystem er et Inverted Index . Dette er i det væsentlige en liste over ord, der findes i dokumentsamlingen med en liste over de dokumenter, de forekommer i. Den kan også have metadata om forekomsten for hvert dokument, såsom antallet af gange, ordet optræder.

Dokumenter, der indeholder ordene, kan forespørges ved at matche søgetermerne. For at bestemme relevans, en heuristik kendt som en Cosinus-rangering er beregnet på hits. Dette fungerer ved at konstruere n-dimensionel vektor med én komponent for hver af de n søgetermer. Du kan også vægte søgetermerne, hvis det ønskes. Denne vektor giver et punkt i n-dimensionelt rum, der svarer til dine søgetermer.

En lignende vektor baseret på de vægtede forekomster i hvert dokument kan konstrueres ud fra det inverterede indeks, hvor hver akse i vektoren svarer til aksen for hvert søgeord. Hvis du beregner et prikprodukt af disse vektorer, får du cosinus af vinklen mellem dem. 1,0 svarer til cos (0), hvilket ville antage, at vektorerne optager en fælles linje fra origo. Jo tættere vektorerne er sammen, jo mindre er vinklen, og jo tættere er cosinus på 1,0.

Hvis du sorterer søgeresultaterne efter cosinus (eller sætter dem i en prioriteret kø som mg a> gør) får du det mest relevante. Smartere relevansalgoritmer har en tendens til at rode med vægten af ​​søgetermerne og skævvrider prikproduktet til fordel for termer med høj relevans.

Hvis du vil grave lidt, kan du Administrere Gigabytes af Bell og Moffet diskuterer den interne arkitektur af tekstgenfindingssystemer.



  1. Kan ikke slippe en MySQL-tabel på grund af fremmednøglebegrænsninger

  2. ListView-kontrol med Ms-Access TreeView

  3. MySQL flerkolonne primær nøgle

  4. Slash eller ingen Slash?