freetext (Transact-sql)

Olduğu bir yüklemi kullanılan Transact-SQL   where yan tümcesi , a Transact-SQLgerçekleştirmek için select deyimi bir SQL Servertam metin üzerinde tam metin arama dizin karakter tabanlı veri türleri içeren sütunlar. Bu yüklemi anlamı ve sadece tam ifade kelime arama koşulunda eşleşen değerleri arar. freetext kullanıldığında, tam metin sorgu motoru dahili olarak aşağıdaki eylemleri gerçekleştirir freetext_string, her dönem bir ağırlık atar ve eşleşme bulur:

  • Dize içine tek tek sözcükler, sözcük sınırları (sözcük bölme) göre ayırır.

  • (Doğan) kelime Inflectional formları oluşturur.

  • Eşanlamlılar maçlarda temel terimler için genişletmeler veya değişiklik listesini tanımlar.

[!NOT]

Tam metin arama tarafından desteklenen biçimleri hakkında bilgi için SQL Serverbakın Tam metin arama sorgusuyla.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

FREETEXT ( { column_name | (column_list) | * } 
          , 'freetext_string' [ , LANGUAGE language_term ] )

Bağımsız değişkenler

  • column_name
    Bir veya daha fazla tam metin dizini oluşturulmuş sütunlar from yan tümcesinde belirtilen tablonun adıdır. The columns can be of type char, varchar, nchar, nvarchar, text, ntext, image, xml, varbinary, or varbinary(max).

  • column_list
    Bir virgülle ayrılmış birden fazla sütun belirtilen gösterir. column_listayraç içine alınmalıdır. Sürece language_termbelirtilen tüm sütunları dili column_listaynı olmalıdır.

  • *
    Tam metin arama için kayıtlı tüm sütunları aramak için kullanılması gerektiğini belirtir verilen freetext_string. from yan tümcesinde birden fazla tablo ise * tablo adı kalifiye olmalıdır. Sürece language_termbelirtilirse, tüm sütunlar tablonun dili aynı olması gerekir.

  • freetext_string
    Metin içinde arama column_name. Sözcükler, ifadeler veya cümleler, dahil herhangi bir metin girilebilir. Maçlar, herhangi bir terim ya da herhangi bir terim formları bulunur, tam metin dizini oluşturulur.

    Tersine CONTAINS ve CONTAINSTABLE arama koşul ve kullanıldığında bir anahtar kelime olduğunu freetext_stringkelime 've' bir sözcük, kabul edilir ya da stopword, atılır.

    AĞIRLIK, BİÇİMLERİYLE, joker, yakın ve diğer sözdizimi kullanımını izin verilmez. freetext_stringkaynaklandığını ve eşanlamlılar geçirilen wordbroken olduğunu.

    freetext_stringis nvarchar. Başka bir karakter veri türü girdi olarak kullanılan bir örtük dönüştürme gerçekleşir. Aşağıdaki örnekte, @SearchWorddeğişken olarak tanımlandığı, varchar(30), neden bir örtük dönüştürme FREETEXTyüklemi.

    USE AdventureWorks2012;
    GO
    DECLARE @SearchWord varchar(30)
    SET @SearchWord ='performance'
    SELECT Description 
    FROM Production.ProductDescription 
    WHERE FREETEXT(Description, @SearchWord);
    
    USE AdventureWorks2012;
    GO
    DECLARE @SearchWord varchar(30)
    SET @SearchWord ='performance'
    SELECT Description 
    FROM Production.ProductDescription 
    WHERE FREETEXT(Description, @SearchWord);
    

    Çünkü "parametresi koklama" does değil iş arasında dönüşüm, kullanım nvarchardaha iyi performans için. Örnekte, ilan @SearchWordolarak nvarchar(30).

    USE AdventureWorks2012;
    GO
    DECLARE @SearchWord nvarchar(30)
    SET @SearchWord = N'performance'
    SELECT Description 
    FROM Production.ProductDescription 
    WHERE FREETEXT(Description, @SearchWord);
    
    USE AdventureWorks2012;
    GO
    DECLARE @SearchWord nvarchar(30)
    SET @SearchWord = N'performance'
    SELECT Description 
    FROM Production.ProductDescription 
    WHERE FREETEXT(Description, @SearchWord);
    

    En iyi duruma getirmek için sorgu ipucu içinde nonoptimal bir plan oluşturulan durumlar için de kullanabilirsiniz.

  • DİLlanguage_term
    Kaynakları sözcük bölme, doğan ve eş anlamlılar sözlüğü ve stopword kaldırma sorgu bir parçası olarak kullanılan dildir. Bu parametre isteğe bağlıdır ve bir dize, tamsayı veya onaltılık değeri, bir dil yerel ayar tanıtıcısını (LCID) karşılık belirtilebilir. Eğer language_termbelirtilirse, temsil ettiği dil arama koşulu öğelerin tümüne uygulanır. Herhangi bir değer belirtilirse, sütun tam metin dili kullanılır.

    Farklı dillerde belgeler olarak büyük ikili nesneler (BLOB'lar) tek bir sütunda birlikte depolanıyorsa, verilen belgenin yerel ayar tanıtıcısını (LCID) içeriği dizine eklemek hangi dilde kullanılacağını belirler. Böyle bir sütun sorgularken belirterek LANGUAGE language_termiyi bir eşleşme olasılığını artırabilir.

    Bir dizge olarak belirtilen language_termkarşılık ad sütun değeri o sys.syslanguages (Transact-sql)Uyumluluk Görünümü. Dize gibi tek tırnak işareti içine alınmalıdır 'language_term'. Bir tamsayı olarak belirtildiğinde language_termdilini tanımlayan gerçek LCID '. Onaltılı değer olarak belirtildiğinde language_term0 x LCID onaltılık değerini izliyor. Onaltılık değeri, sekiz basamak, öndeki dahil aşmamalıdır.

    Değer ise çift baytlı karakter kümesi (dbcs) biçimi, Microsoft  SQL ServerUnicode'a dönüştürür.

    Belirtilen dil veya orada geçerli değilse kaynak yok bu dile karşılık gelen yüklü Microsoft  SQL Serverhata veriyor. Nötr dil kaynakları kullanmak için 0x0 olarak belirtmeniz language_term.

Genel Yorumlar

Tam metin doğrulamaları ve çalışma from yüklemi örtülü tek bir tabloda fonksiyonları. Birden fazla tabloyu temel arama yapmak için iki veya daha fazla tablodan bir ürün bir sonuç kümesi üzerinde aramak için from yan tümcesinde birleştirilen tablo kullanın.

freetext kullanarak tam metin sorgu CONTAINS kullanma bu tam metin sorguları az hassas. SQL ServerTam metin arama motoru tanımlayan önemli sözcük ve tümcecikler. Özel bir anlamı ayrılmış anahtar sözcükleri veya joker karakterler olan genellikle belirtilen zaman anlam verilir <contains_search_condition> CONTAINS parametresi.

Tam metin yüklemler içinde izin verilmez output yan tümcesi ne zaman veritabanı uyumluluk düzeyi 100 olarak ayarlanır.

[!NOT]

freetexttable işlevi maçları aynı türden freetext yüklemi olarak yararlıdır. Bu işlev bir düzenli tablo adı gibi başvurabilirsiniz from yan bir select deyimi. Daha fazla bilgi için, bkz. freetexttable (Transact-sql).

Uzak sunuculara sorgulama

Sen-ebilmek kullanma a four-part adı CONTAINS ya da tam metin sorgu freetext yüklemi endeksli bir bağlantılı sunucu hedef tablolardaki sütunları. Tam metin sorgu almak için uzak sunucuya hazırlamak için hedef tabloları ve sütunları uzak sunucu üzerinde bir tam metin dizini oluşturmak ve sonra bağlantılı bir sunucu uzak sunucu ekleme.

Full-Text Search gibi karşılaştırma

Tam metin arama, farklı olarak gibi Transact-SQL yüklemi sadece karakter modelleri üzerinde çalışıyor. Ayrıca, biçimlendirilmiş ikili veri sorgulamak için LIKE kullanamazsınız. Ayrıca, yapılandırılmamış metin veri büyük miktarda gibi bir sorgu aynı verileri eşdeğer bir tam metin sorgu yavaştır. Metin veri satırları milyonlarca gibi bir sorgu dönmek için dakika alabilir; Oysa bir tam metin sorgu yalnızca birkaç saniye alabilir ya da daha az karşı aynı veri türüne bağlı olarak döndürülen satır sayısı.

Örnekler

A.Belirtilen karakter değerleri içeren sözcükleri aramak için freetext kullanma

Aşağıdaki örnek, kelime ile ilgili hayati, emniyet, bileşenleri içeren tüm belgeleri arar.

USE AdventureWorks2012;
GO
SELECT Title
FROM Production.Document
WHERE FREETEXT (Document, 'vital safety components' );
GO

USE AdventureWorks2012;
GO
SELECT Title
FROM Production.Document
WHERE FREETEXT (Document, 'vital safety components' );
GO

B.freetext değişkenleri ile kullanma

Aşağıdaki örnek, belirli bir arama terimi yerine bir değişken kullanır.

USE AdventureWorks2012;
GO
DECLARE @SearchWord nvarchar(30);
SET @SearchWord = N'high-performance';
SELECT Description 
FROM Production.ProductDescription 
WHERE FREETEXT(Description, @SearchWord);
GO

USE AdventureWorks2012;
GO
DECLARE @SearchWord nvarchar(30);
SET @SearchWord = N'high-performance';
SELECT Description 
FROM Production.ProductDescription 
WHERE FREETEXT(Description, @SearchWord);
GO

Ayrıca bkz.

Görevler

Tam metin arama sorguları (Visual Veritabanı Araçları) oluştur

Başvuru

fulltext Katalog (Transact-sql) oluştur

fulltext INDEX (Transact-sql) oluştur

(Transact-sql) içerir

CONTAINSTABLE (Transact-sql)

Veri Türleri (Transact-SQL)

freetexttable (Transact-sql)

NEREDE (Transact-sql)

Kavramlar

Tam metin arama ile başlamak

Oluşturma ve tam-metin katalogları yönetme

Oluşturun ve tam metin dizinleri Yönet

Tam metin arama sorgusuyla