Podstawową strukturą danych dla systemu wyszukiwania tekstu jest Indeks odwrócony . Jest to zasadniczo lista słów znalezionych w kolekcji dokumentów z listą dokumentów, w których występują. Może również zawierać metadane dotyczące wystąpienia każdego dokumentu, takie jak liczba wystąpień danego słowa.
Dokumenty zawierające słowa można przeszukiwać, dopasowując wyszukiwane terminy. Aby określić trafność, należy zastosować heurystykę znaną jako Ranking kosinusowy jest obliczana na podstawie trafień. Działa to poprzez konstruowanie n-wymiarowego wektora z jednym składnikiem dla każdego z n wyszukiwanych terminów. W razie potrzeby możesz również ważyć wyszukiwane hasła. Ten wektor daje punkt w przestrzeni n-wymiarowej, który odpowiada wyszukiwanym słowom.
Podobny wektor oparty na ważonych wystąpieniach w każdym dokumencie można skonstruować na podstawie odwróconego indeksu, przy czym każda oś w wektorze odpowiada osi dla każdego wyszukiwanego terminu. Jeśli obliczysz iloczyn skalarny tych wektorów, otrzymasz cosinus kąta między nimi. 1.0 jest równoważne cos (0), co oznacza, że wektory zajmują wspólną linię od początku. Im bliżej siebie wektory, tym mniejszy kąt i bliższy cosinusowi do 1.0.
Jeśli sortujesz wyniki wyszukiwania według cosinusa (lub umieszczasz je w kolejce priorytetowej jako mg tak) otrzymujesz najbardziej odpowiednie. Sprytniejsze algorytmy trafności mają tendencję do majstrowania przy wagach wyszukiwanych haseł, przechylając iloczyn skalarny na korzyść haseł o dużej trafności.
Jeśli chcesz trochę pogrzebać, Zarządzanie gigabajtami autor:Dzwonek i Moffet omawia wewnętrzną architekturę systemów wyszukiwania tekstu.