Aracılığıyla paylaş


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.