Aracılığıyla paylaş


Ranked sonuç kümesi (tam metin araması) sınırlama

The CONTAINSTABLE and FREETEXTTABLE functions return a sütun named RANK that contains ordinal values from 0 through 1000 (rank values).Bu değerler, seçim ölçütü ne kadar iyi eşleşen göre döndürülen satırları derecelendirmek için kullanılır.Rütbe değerleri, alt uygunluğu gösteren için daha düşük bir değer uygunluğu sonuç kümesinde satırların yalnızca bir göreli sırasını gösterir.Fiili değerler önemsiz ve genellikle, sorguyu her çalıştırmanızda farklı.

Not

IÇERIR ve FREETEXT yüklemler rütbe herhangi bir değer döndürmüyor.

Bir arama koşulu eşleşen öğeler genellikle 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 birleştirilir diğer parametreleri, sorgu tüm koşullarına uyan satır sayısından daha az satır dönmek.

SQL Server eşleri tarafından rütbe siparişleri ve yalnızca belirtilen satır sayısı kadar verir.Bu seçenek, çarpıcı bir artış oluşabilir.Örneğin, sorguda normal olarak, bir milyon satır bir tablodan 100.000 satır döndürür işlenir daha hızlı yalnızca üst 100 satır istenir.

Not

tam metin araması rütbe değerleri oluşturur hakkında bilgi için bkz: Arama sorgu sonuçlar (tam metin araması) nasıl derecelendirilir.

Örnek

Örnek A: Yalnızca üst için arama üç eşleşiyor

Aşağıdaki örnekte, yalnızca üst üç eşleşen döndürülecek 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

Here is the result set.

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: Üst için arama on eşleşiyor

Aşağıdaki örnekte, ilk 10 yiyecek kategorileri açıklamasını ve kategori adını döndürmek için CONTAINSTABLE kullanır burada Descriptionsütun "sauces" sözcüğü veya sözcük "candies." "Lezzetli ve savory" sözcüklerini içerir.

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

  • Arama sorgu sonuçlar (tam metin araması) nasıl derecelendirilir
    Açıklayan bir sorgu tarafından döndürülen sıra değerleri tam metin araması üretir nasıl sık dahil hüküm ve rütbe rütbe hesaplaması sorunları ve derecelendirmesi CONTAINSTABLE ve FREETEXTTABLE işlevlerini hesaplamak için önemli olan istatistik değerleri kullanılan sonuçlar.