說明??對于那些區分大小寫的語言(多數都基于拉丁語),全文檢索查詢以區分大小寫的方式執行。但是,在日語中,有許多表示語音的拼字法,其中拼字規范化這一概念與不區分大小寫類似,如 kana = 不區分。這種拼字規范化不被支持。
假定想在 Northwind 數據庫內進行搜索,以查找短語"bean curd"。如果使用 CONTAINS 謂詞,這就是一個很簡單的查詢。
USE Northwind
GO
SELECT Description
FROM Categories
WHERE Description LIKE '%bean curd%'
GO
或者,使用 CONTAINS:
USE Northwind
GO
SELECT Description
FROM Categories
WHERE CONTAINS(Description, ' "bean curd" ')
GO
CONTAINS 謂詞使用的函數表示法中,第一個參數是要檢索的列的名稱,第二個參數是全文檢索條件。檢索條件(此例中是"bean curd")可以很復雜,由一個或多個條件組成,這將在后面介紹。
CONTAINS 謂詞支持使用復雜的語法在基于字符的列中檢索:
- 一個或多個特定的單詞和/或短語(簡單條件)。
一個單詞是一個或多個字符,中間沒有空格或標點。有效的短語可以由帶空格的多個單詞組成,單詞之間可以有標點也可以沒有標點。例如,croissant 是一個單詞,而 café au lait 是一個短語。這樣的單詞和短語稱為簡單條件。
- 特定單詞的變形(派生條件)。
例如,檢索單詞 drive 的變形。如果表中的不同行包含單詞 drive、drives、drove、driving 和 driven,那么所有這些都將包含在結果集中,因為其中每一個都可以從單詞 drive 變形而來。
- 以指定文本(前綴條件)打頭的單詞或短語。
如果是短語,則該短語內的每個單詞都被看作是一個前綴。例如,條件 auto tran* 與 automatic transmission 和 automobile transducer 匹配。
- 使用加權值的單詞或短語(加權條件)。
例如,查找一個賦權值比另一個單詞高的單詞。這將返回排序的查詢結果。
- 與另一個單詞或短語相近的單詞或短語(鄰近條件)。
例如,查找一些行,這些行中單詞 ice 與 hockey 相鄰,或者短語 ice skating 與 ice hockey 相鄰。
CONTAINS 謂詞可以用 AND 和 OR 將這些條件中的幾個結合起來,例如,要查找同一個啟用全文的數據庫列中所有有 latte 和 New York-style bagel 的行。不僅如此,還可以使用 AND NOT 對條件取反,例如 bagel and not cream cheese。
在使用 CONTAINS 時,記住 SQL Server 將從檢索條件中去掉干擾詞。干擾詞是象 a、and、is 或 the 這樣的詞,這些詞可能經常出現,但是在檢索特定文本時沒有真正的幫助。