Ranked sonuç kümeleri (tam metin araması) sınırlama
The CONTAINSTABLE and FREETEXTTABLE functions return a column named RANK that contains ordinal values from 0 through 1000 (rank values).Bu değerlerin ne kadar iyi onlar seçim ölçütü ile eşleşen göre döndürülen satırları derecelendirmek için kullanılır.Rank değerleri yalnızca bir göreli, ilgi sırasına sonuç küme satırların alt ilgi gösteren için daha düşük bir değer gösterir.Fiili değerler önemli olmadığı ve genellikle her farklı saat sorguyu çalıştırın.
Not
CONTAINS ve freetext yüklemler rank değerleri döndürür.
Bir arama koşulu eşleşen öğeler genellikle çok büyük sayısıdır.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.If top_n_by_rank is combined with other parameters, the query could return fewer rows than the number of rows that actually match all the predicates.
SQL Server rank'ın eşleri siparişleri ve yalnızca belirtilen satır sayısı kadar döndürür.Bu seçim bir artışın performans neden olabilir.Örneğin, normalde 100.000 satırlarını döndürür sorgu bir tablo en iyi 100 satır istenen yalnızca bir milyon satır daha hızlı işlenir.
Not
Rank değerleri nasıl tam metin araması hakkında bilgi üretir, bakın (Tam metin araması) arama sonuçlarının nasıl derecelendirilir.
Örnek
Örnek a: Yalnızca üç eşleşmeleri için arama
Aşağıdaki örnek, yalnızca üç eşleşmeleri döndürmek için CONTAINSTABLE kullanır.
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
Sonuç kümesi buradadır.
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
Örnek b: On eşleşmeleri için arama
Aşağıdaki örnek CONTAINSTABLE ilk 10 Yiyecek kategorileri açıklamasını ve kategori adını kullanır burada Description sütun "Tatlı ve savory" sözcükleri içerir yakın bir yerde ya da word "sauces" veya Word ' ün "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
Bu Bölümde
- (Tam metin araması) arama sonuçlarının nasıl derecelendirilir
Açıklayan bir sorgu tarafından döndürülen rank değerleri tam metin araması üretir nasıl yaygın olarak da dahil olmak üzere hüküm ve rütbe rütbe hesaplaması sorunlar ve CONTAINSTABLE ve freetexttable fonksiyonlarını derecesini hesaplamak önemli istatistik değerleri kullanılan sonuçlar.