Ograniczanie środkowa zestawów wyników (wyszukiwanie pełnotekstowe)
CONTAINSTABLE i FREETEXTTABLE zwracają kolumna o nazwie RANGA, zawierającą wartości porządkowej od 0 do 1000 (pozycja wartości).Wartości te są używane do rangi wierszy zwracanych zgodnie z jak spełniające kryteria selekcji.Wartości rangi wskazują względna kolejność przydatności wierszy zestaw wyników z niższą wartość wskazującą znaczenie dolnym.Wartości rzeczywiste nie są ważne i zazwyczaj różnią się w każdym czas kwerenda jest uruchamiana.
Ostrzeżenie
Predykaty ZAWIERA i FREETEXT zwraca wartości rangi.
Liczba elementów spełniających warunek wyszukiwania jest często bardzo duże.To prevent CONTAINSTABLE or FREETEXTTABLE queries from returning too many matches, use the optional top_n_by_rank parameter, which returns only a subset of rows.top_n_by_rank is an integer value, n, that specifies that only the n highest ranked matches are to be returned, in descending order.Jeśli top_n_by_rank jest połączone z innymi parametrami, kwerenda może zwracać mniej wierszy niż liczba wierszy spełniających faktycznie wszystkich predykatów.
SQL Server zamówienia dopasowania przez Ranga i zwraca do określonej liczby wierszy.Ten wybór może powodować gwałtowny wzrost wydajności.Na przykład kwerendy, która zwróci normalnie 100 000 wierszy z tabela jednego miliona wierszy są przetwarzane szybciej, jeśli tylko wymagane są top 100 wierszy.
Ostrzeżenie
Aby uzyskać informacje o przeszukiwanie pełnego tekstu generuje rangi wartości, zobacz Jak wyniki kwerendy wyszukiwania są uporządkowane (wyszukiwanie pełnotekstowe).
Przykład
Przykład A: Wyszukiwanie tylko trzech najlepszych dopasowań
W poniższym przykładzie użyto CONTAINSTABLE zwraca tylko trzech najlepszych dopasowań.
USE Northwind;
GO
SELECT K.RANK, CompanyName, ContactName, Address
FROM Customers AS C
INNER JOIN
CONTAINSTABLE(Customers,Address, 'ISABOUT ("des*",
Rue WEIGHT(0.5),
Bouchers WEIGHT(0.9))', 3) AS K
ON C.CustomerID = K.[KEY];
GO
Oto zestaw wyników.
RANK CompanyName ContactName address
---- ------------ ----------- -------
123 Bon app' Laurence Lebihan 12, rue des Bouchers
65 Du monde entier Janine Labrune 67, rue des Cinquante Otages
15 France restauration Carine Schmitt 54, rue Royale
Przykład B: Wyszukiwanie najlepszych dopasowań dziesięciu
W poniższym przykładzie użyto CONTAINSTABLE zwraca opis i kategoria Nazwa kategorii żywności 10 pierwszych gdzie Description Kolumna zawiera wyrazy "słodkie i savory" blisko wyrazu "sosy" lub wyraz "candies".
SELECT FT_TBL.Description,
FT_TBL.CategoryName,
KEY_TBL.RANK
FROM Categories AS FT_TBL INNER JOIN
CONTAINSTABLE (Categories, Description,
'("sweet and savory" NEAR sauces) OR
("sweet and savory" NEAR candies)'
, 10
) AS KEY_TBL
ON FT_TBL.CategoryID = KEY_TBL.[KEY];
GO
W tej sekcji
- Jak wyniki kwerendy wyszukiwania są uporządkowane (wyszukiwanie pełnotekstowe)
Opisuje sposób przeszukiwanie pełnego tekstu generuje rangi wartości zwracane przez kwerendy, łącznie z powszechnie używane terminy i wartości statystycznych, które są istotne przy obliczaniu ranga, problemy rangi obliczeń i klasyfikacji wyniki funkcje CONTAINSTABLE i FREETEXTTABLE.