Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Karakter tabanlı veri tipleri içeren tam metin indeksli sütunlarda SQL Server tam metin araması yapmak için Transact-SQL SELECT ifadesinin FROM maddesinde kullanılan bir fonksiyondur. Bu fonksiyon, belirtilen freetext_string'daki metnin tam ifadesine değil, sadece anlamıyla uyumlu değerleri içeren sütunlar için sıfır, bir veya daha fazla satır tablosu döndürür. FREETEXTTABLE, sanki normal bir tablo adı gibi referans alınır.
FREETEXTTABLE, FREETEXT (Transact-SQL) ile aynı tür eşleşmeler için faydalıdır,
FREETEXTTABLE kullanan sorgular, her satır için bir alaka sıralama değeri (RANK) ve tam metin anahtarı (KEY) döndürür.
Uyarı
SQL Server tarafından desteklenen tam metin arama biçimleri hakkında bilgi için bkz. Full-Text Aramaile sorgu
Transact-SQL söz dizimi kuralları
Sözdizimi
FREETEXTTABLE (table , { column_name | (column_list) | * }
, 'freetext_string'
[ , LANGUAGE language_term ]
[ , top_n_by_rank ] )
Arguments
table
Tam metin sorgulama için işaretlenmiş tablonun adıdır.
Tablo veya görünüm, bir, iki veya üç parçalı veritabanı nesne adı olabilir. Bir görünüm sorgulaması yapılırken, yalnızca bir tam metin indeksli temel tablo kullanılabilir.
Tablo , sunucu adını belirtemez ve bağlı sunuculara karşı sorgularda kullanılamaz.
column_name
FROM yan tümcesinde belirtilen tablonun bir veya daha fazla tam metin dizinli sütununun adıdır. Sütunlar char, varchar, nchar, nvarchar, metintüründe olabilir . ntext, resim, xml, varbinaryveya varbinary(max).
column_list
Virgülle ayrılmış birkaç sütunun belirtilebileceğini gösterir.
column_list parantez içine alınmalıdır.
language_term belirtilmediği sürece, column_list tüm sütunlarının dili aynı olmalıdır.
*
Verilen freetext_stringaramak için tam metin araması için kaydedilmiş tüm sütunların kullanılması gerektiğini belirtir.
language_term belirtilmedikçe, tablodaki tüm tam metin indeksli sütunların dili aynı olmalıdır.
freetext_string
column_nameiçinde aranacak metindir. Sözcükler, tümcecikler veya tümceler de dahil olmak üzere tüm metinler girilebilir. Herhangi bir terim veya terimin formları tam metin dizininde bulunursa eşleşmeler oluşturulur.
CONTAINS arama koşulunda AND anahtar kelime olduğunda, freetext_string içinde 'and' kelimesi gürültülü kelime veya durdurma kelimesi olarak kabul edilir ve atılır.
WEIGHT, FORMSOF, joker karakterler, NEAR ve diğer söz dizimlerinin kullanılmasına izin verilmez. freetext_string sözcük kırılır, kökü oluşturulur ve eş anlamlılar sözlüğünden geçirilir.
DIL language_term
Kaynakları, sorgunun bir parçası olarak sözcük kesme, sözcük kökü oluşturma ve eş anlamlılar sözlüğü ve stopword kaldırma için kullanılacak dildir. Bu parametre isteğe bağlıdır ve bir dilin yerel ayar tanımlayıcısına (LCID) karşılık gelen bir dize, tamsayı veya onaltılık değer olarak belirtilebilir.
language_term belirtilirse, temsil ettiği dil arama koşulunun tüm öğelerine uygulanır. Değer belirtilmezse, sütun tam metin dili kullanılır.
Farklı dillerdeki belgeler tek bir sütunda ikili büyük nesneler (BLOB) olarak birlikte depolanıyorsa, belirli bir belgenin yerel ayar tanımlayıcısı (LCID), içeriğini dizine almak için hangi dilin kullanıldığını belirler. Böyle bir sütun sorgulanırken, LANGUAGE language_term belirtmek iyi bir eşleşme olasılığını artırabilir.
Bir dizi olarak belirtildiğinde, language_termsys.syslanguages (Transact-SQL) uyumluluk görünümündeki alias sütun değerine karşılık gelir. Dize, 'language_term' içinde olduğu gibi tek tırnak içine alınmalıdır. Tamsayı olarak belirtildiğinde, language_term dili tanımlayan gerçek LCID'dir. Onaltılık değer olarak belirtildiğinde, language_term 0x olur ve bunu LCID'nin onaltılık değeri izler. Onaltılık değer, baştaki sıfırlar da dahil olmak üzere sekiz basamağı aşmamalıdır.
Değer çift baytlık karakter kümesi (DBCS) biçimindeyse, Microsoft SQL Server bunu Unicode'a dönüştürür.
Belirtilen dil geçerli değilse veya o dile karşılık gelen kaynak kurulmamışsa, SQL Server hata döndürür. Nötr dil kaynaklarını kullanmak için 0x0 language_termolarak belirtin.
top_n_by_rank
Yalnızca en yüksek sıralı nmaçın azalan sırayla geri döndüğünü belirtir. Yalnızca nbir tamsayı değeri belirtildiğinde geçerlidir.
top_n_by_rank diğer parametrelerle birleştirilirse, sorgu tüm koşullarla eşleşen satır sayısından daha az satır döndürebilir.
top_n_by_rank yalnızca en ilgili isabetleri geri çekerek sorgu performansını artırmanıza olanak tanır.
Açıklamalar
Tam metin önkoşulları ve işlevleri, FROM koşulunda yer alan tek bir tabloda çalışır. Birden çok tabloda arama yapmak için FROM yan tümcenizde birleştirilmiş bir tablo kullanarak iki veya daha fazla tablonun ürünü olan bir sonuç kümesinde arama yapın.
FREETEXTTABLE, FREETEXT önlemiyle aynı arama koşullarını kullanır.
CONTAINSTABLE gibi, döndürülen tabloda KEY ve RANK adlı sütunlar bulunur; bu sütunlar sorgu içinde referans verilir ve uygun satırlar elde edilir ve satır sıralama değerleri kullanılır.
Permissions
FREETEXTTABLE, yalnızca belirtilen tablo veya referans verilen tablo sütunları için uygun SELECT ayrıcalıklarına sahip kullanıcılar tarafından çağrılabilir.
Örnekler
A. Basit Örnek
Aşağıdaki örnek, 3 ilçe ve bayraklarındaki renkleri listeleyen iki sütundan oluşan basit bir tablo oluşturur ve doldurur. Böylece tam metin bir katalog ve indeks tabloda oluşturulur ve doldurur. Sonra FREETEXTTABLE sözdizimi gösterilir.
CREATE TABLE Flags (Country nvarchar(30) NOT NULL, FlagColors varchar(200));
CREATE UNIQUE CLUSTERED INDEX FlagKey ON Flags(Country);
INSERT Flags VALUES ('France', 'Blue and White and Red');
INSERT Flags VALUES ('Italy', 'Green and White and Red');
INSERT Flags VALUES ('Tanzania', 'Green and Yellow and Black and Yellow and Blue');
SELECT * FROM Flags;
GO
CREATE FULLTEXT CATALOG TestFTCat;
CREATE FULLTEXT INDEX ON Flags(FlagColors) KEY INDEX FlagKey ON TestFTCat;
GO
SELECT * FROM Flags;
SELECT * FROM FREETEXTTABLE (Flags, FlagColors, 'Blue');
SELECT * FROM FREETEXTTABLE (Flags, FlagColors, 'Yellow');
B. İÇİÇ BIRLEŞMEDE SERBEST METIN kullanımı
Aşağıdaki örnek, herhangi bir ürünün tanımını ve derecesini döndürür, açıklaması ise 'nin high level of performanceanlamıyla eşleşir.
USE AdventureWorks2022;
GO
SELECT FT_TBL.Description
,KEY_TBL.RANK
FROM Production.ProductDescription AS FT_TBL
INNER JOIN FREETEXTTABLE(Production.ProductDescription,
Description,
'high level of performance') AS KEY_TBL
ON FT_TBL.ProductDescriptionID = KEY_TBL.[KEY]
ORDER BY RANK DESC;
GO
C. Dil ve en yüksek sıralı maçların belirtilmesi
Aşağıdaki örnek aynıdır ve language_term ile top_n_by_rank parametrelerinin kullanımını LANGUAGE gösterir.
USE AdventureWorks2022;
GO
SELECT FT_TBL.Description
,KEY_TBL.RANK
FROM Production.ProductDescription AS FT_TBL
INNER JOIN FREETEXTTABLE(Production.ProductDescription,
Description,
'high level of performance',
LANGUAGE N'English', 2) AS KEY_TBL
ON FT_TBL.ProductDescriptionID = KEY_TBL.[KEY]
ORDER BY RANK DESC;
GO
Uyarı
LANGUAGE language_term parametresi top_n_by_rank parametresini kullanmak için zorunlu değildir.
Ayrıca Bkz.
Full-Text Arama Kullanmaya Başlama
Full-Text Katalog oluşturma ve yönetme
TAM METIN KATALOG OLUŞTUR (Transact-SQL)
TAM METİN İNDEKSİ OLUŞTUR (Transact-SQL)
Full-Text Dizin oluşturma ve yönetme
Sorgu, Full-Text Arama ile
Full-Text Arama Sorguları Oluşturma (Visual Database Araçları)
İÇERİR (Transact-SQL)
CONTAINSTABLE (Transact-SQL)
SERBEST METIN (Transact-SQL)
Sıra Kümesi Fonksiyonları (Transact-SQL)
SEÇ (Transact-SQL)
BURADA (Transact-SQL)
precompute rank Server Configuration Option
Azure SQL Database ve Azure SQL Managed Instance'daki özellikleri karşılaştırın