How Search Query Results Are Ranked (Full-Text Search)
Przeszukiwanie pełnego tekstu w SQL Server można wygenerować wynik opcjonalne (lub wartość rangi) oznacza przydatności danych zwróconych przez zapytanie pełnotekstowe. Wartość ta pozycja jest obliczana w każdym wierszu i może służyć jako zamawiania kryteriów do sortowania zestaw wyników kwerendy danej według istotności.Wartości rangi wskazuje względną kolejność znaczenie dla wierszy zestaw wyników.Wartości rzeczywiste nie są ważne i zazwyczaj różnią się przy każdym uruchomieniu kwerendy.Wartość pozycja nie przechowuje żadnego istotność dla kwerendy.
Uwaga
Aby uzyskać informacje dotyczące ograniczania zestawów wyniki USZEREGOWANY zwracanie tylko najodpowiedniejsze wyniki Zobacz Ograniczanie USZEREGOWANY zestawy wyników (wyszukiwanie).
Statystyki dla Klasyfikacja
Podczas tworzenia indeksu statystyki są zbierane do użycia w rankingu.Proces budowania wykaz pełnotekstowy nie powoduje bezpośrednio w postaci jednego indeksu.Zamiast tego tekstu pełny mechanizm dla SQL Server tworzy indeksy pośrednie, jak dane są indeksowane. Aparat Full-Text następnie scala te indeksy rozmiar indeksu, w razie potrzeby.Ten proces można powtórzyć wielokrotnie.Aparat Full-Text następnie przeprowadza "scalanie wzorca" łączący wszystkie pośrednie indeksów w jeden duży indeks główny.
Statystyki są gromadzone na każdym poziomie pośrednim indeksu.Statystyki są scalane, gdy indeksy są scalane.Niektóre wartości statystycznej można generować tylko podczas procesu scalania wzorca.
Podczas klasyfikacji zestaw wyników kwerendy SQL Server używa statystyk z największą indeksu pośrednich. Zależy to od czy pośrednie indeksy zostały scalone lub nie.W wyniku klasyfikacji statystyki mogą się różnić w dokładności jeśli pośrednich indeksy nie zostały scalone.To wyjaśnia, dlaczego tej samej kwerendy może zwracać różne wyniki rangi w czasie pełnego tekstu indeksowane dane są dodane, zmodyfikowane i usuwane, a jako mniejsze indeksy są scalane.
Aby zminimalizować rozmiar indeksu i złożoności obliczeniowa, statystyki często są zaokrąglane.
Poniższa lista zawiera niektóre powszechnie używane terminy i statystycznych wartości, które są istotne przy obliczaniu rangę.
Właściwość
kolumna indeksowaną całego tekstu w wierszu.Dokument
Jednostkę, która jest zwracana w kwerendach.W SQL Server odpowiada to wiersz. Dokument może mieć wielu właściwości, podobnie jak wiersz może zawierać wiele kolumn indeksowanych pełnego tekstu.CTRL + F1
Pojedyncze odwrócony indeksu jednego lub większej liczby dokumentów.Może to być całkowicie w pamięci lub na dysku.Wiele statystyki kwerendy są względem poszczególnych indeksu, w którym wystąpiło dopasowanie.wykaz pełnotekstowy
Kolekcja indeksów pośrednie są traktowane jako jeden obiekt dla kwerendy.Katalogi są jednostki widoczne dla organizacji SQL Server Administrator.Program Word tokenu lub element
Jednostka dopasowania w aparacie pełnego tekstu.Strumienie tekst z dokumentów są tokenized wyrazy lub tokeny przez wyłączników wyraz specyficzne dla danego języka.Wystąpienie
Przesunięcie wyraz we właściwość dokumentu zgodnie z ustaleniami dzielącego.Pierwszy wyraz wynosi 1, przy następnym wystąpieniu 2 i tak dalej.W celu uniknięcia fałszywie w kwerendach wyrażenia i bliskości, koniec zdania i koniec z akapitu wprowadzono większych wystąpienie przerw.TermFrequency
Liczba godzin wartość klucz występuje w wierszu.IndexedRowCount
Całkowita liczba wierszy indeksowane.To jest obliczana, oparte na liczby w pośredniej indeksów.Liczba ta może się zmieniać w dokładności.KeyRowCount
Całkowita liczba wierszy w wykaz pełnotekstowy zawierające danego klucz.MaxOccurrence
Największy wystąpienia przechowywanych w katalogu pełnotekstowe danej właściwość w wierszu.MaxQueryRank
Maksymalny stopień, 1000, zwracane przez aparat Full-Text.
Problemy z obliczeń rangi
Proces przetwarzania danych ranga, zależy od wielu czynników.Inny język wyraz wyłączników tokenize tekst inaczej.Na przykład ciąg "pies dom" może być przerwane na "dog" "dom" przez jeden dzielącego i na "dom dog" przez inny.Oznacza to, że dopasowywania i klasyfikacji będzie się zmieniać na podstawie języka określono, że nie tylko różnią się wyrazy, ale jest długość dokumentu.Różnica długości dokumentu mogą mieć wpływ na klasyfikację dla wszystkich kwerend.
Statystyki, takie jak IndexRowCount może się znacznie różnić. Na przykład jeśli katalog ma miliard 2 wiersze indeks główny, a następnie jeden nowy dokument jest indeksowany w indeksie pośrednich w pamięci i może być skośny rangę dla tego dokumentu na podstawie liczby dokumentów w indeksie w pamięci w porównaniu z rangę dla dokumentów z indeks główny.Z tego powodu zaleca się, że po każdej zapełnianie w dużej liczby wierszy są indeksowane lub re-indexed indeksy można scalić w indeks główny za pomocą instrukcji ALTER katalogu więcej...ZMIENIANIE KOLEJNOŚCI Transact-SQL Instrukcja. Aparat Full-Text również automatycznie scali indeksy na podstawie parametrów, takich jak liczba i rozmiar indeksów pośrednich.
MaxOccurrence wartości są znormalizowane na 1 32 zakresów.Oznacza to, na przykład dokument 50 długich wyrazów jest taka sama, traktowane jako wyrazy w dokumencie 100, długie.Poniżej przedstawiono tabela używaną do normalizacji.Because the document lengths are in the range between adjacent table values 32 and 128, they are effectively treated as having the same length, 128 (32 < docLength <= 128).
{ 16, 32, 128, 256, 512, 725, 1024, 1450, 2048, 2896, 4096, 5792, 8192, 11585,
16384, 23170, 28000, 32768, 39554, 46340, 55938, 65536, 92681, 131072, 185363,
262144, 370727, 524288, 741455, 1048576, 2097152, 4194304 };
Klasyfikacja z CONTAINSTABLE
CONTAINSTABLE klasyfikacji używa następującego algorytmu:
StatisticalWeight = Log2( ( 2 + IndexedRowCount ) / KeyRowCount )
Rank = min( MaxQueryRank, HitCount * 16 * StatisticalWeight / MaxOccurrence )
Dopasowuje frazę są ujęte w rankingu tak samo, jak poszczególne klucze z tą różnicą, że KeyRowCount (liczba wierszy zawierających frazę) jest szacowane i mogą być niedokładne i wyższe niż faktyczna liczba.
Klasyfikacja z ISABOUT
CONTAINSTABLE obsługuje kwerendy dla warunków ważona za pomocą opcji ISABOUT.ISABOUT jest kwerendy wektorowej w terminologii tradycyjnych pobierania informacji.Domyślnie klasyfikacji algorytm używany jest Jaccard, powszechnie znane formuły.Ranking jest obliczane dla każdego warunku w kwerendzie, a następnie łączone zgodnie z poniższym opisem.
ContainsRank = same formula used for CONTAINSTABLE ranking of a single term (above).
Weight = the weight specified in the query for each term. Default weight is 1.
WeightedSum = Σ[key=1 to n] ContainsRankKey * WeightKey
Rank = ( MaxQueryRank * WeightedSum ) / ( ( Σ[key=1 to n] ContainsRankKey^2 )
+ ( Σ[key=1 to n] WeightKey^2 ) - ( WeightedSum ) )
Klasyfikacja z FREETEXTTABLE
FREETEXTTABLE klasyfikacji opiera się na formuły BM25 OKAPI klasyfikacji.Kwerendy FREETEXTTABLE spowoduje dodanie wyrazów do kwerendy za pośrednictwem inflectional generacji (inflected formy oryginalnej wyrazów kwerendy), te wyrazy są traktowane jako oddzielne wyrazy z nie szczególnych stosunkach do słów, z której zostały wygenerowane.Synonimy generowane na podstawie funkcji słownik wyrazów bliskoznacznych są traktowane jako osobny, równomiernie ważona warunki.Każdy wyraz w kwerendzie przyczynia się do poziomu.
Rank = Σ[Terms in Query] w ( ( ( k1 + 1 ) tf ) / ( K + tf ) ) * ( ( k3 + 1 ) qtf / ( k3 + qtf ) ) )
Where:
w is the Robertson-Sparck Jones weight.
In simplified form, w is defined as:
w = log10 ( ( ( r + 0.5 ) * ( N – R + r + 0.5 ) ) / ( ( R – r + 0.5 ) * ( n – r + 0.5 ) )
N is the number of indexed rows for the property being queried.
n is the number of rows containing the word.
K is ( k1 * ( ( 1 – b ) + ( b * dl / avdl ) ) ).
dl is the property length, in word occurrences.
avdl is the average length of the property being queried, in word occurrences.
k1, b, and k3 are the constants 1.2, 0.75, and 8.0, respectively.
tf is the frequency of the word in the queried property in a specific row.
qtf is the frequency of the term in the query.