我會推薦這種方法:
1)確保您的數據庫列類型爲nvarchar 2)確保您正在將nvarchar值插入列中。
這是一個爲什麼這很重要的小演示。可能你有這個腳本中顯示的問題之一。
CREATE TABLE ftstest (Id int PRIMARY KEY, name varchar(1000), nameA varchar(1000) COLLATE Arabic_BIN, nameN nvarchar(1000))
GO
-- CREATE FTS index for the ftstest table using designer
INSERT INTO ftstest VALUES(1, N'"الاستنتاجات ونصائح للوقاية من أشعة الشمس"', N'"الاستنتاجات ونصائح للوقاية من أشعة الشمس"', N'"الاستنتاجات ونصائح للوقاية من أشعة الشمس"')
GO
INSERT INTO ftstest VALUES (2, '"الاستنتاجات ونصائح للوقاية من أشعة الشمس"', '"الاستنتاجات ونصائح للوقاية من أشعة الشمس"', '"الاستنتاجات ونصائح للوقاية من أشعة الشمس"')
GO
SELECT * FROM ftstest WHERE CONTAINS(name, N'"الاستنتاجات ونصائح للوقاية من أشعة الشمس*"')
SELECT * FROM ftstest WHERE CONTAINS(nameA, N'"الاستنتاجات ونصائح للوقاية من أشعة الشمس*"')
SELECT * FROM ftstest WHERE CONTAINS(nameN, N'"الاستنتاجات ونصائح للوقاية من أشعة الشمس*"')
SELECT * FROM ftstest WHERE CONTAINS(name, '"الاستنتاجات ونصائح للوقاية من أشعة الشمس*"')
SELECT * FROM ftstest WHERE CONTAINS(nameA, '"الاستنتاجات ونصائح للوقاية من أشعة الشمس*"')
SELECT * FROM ftstest WHERE CONTAINS(nameN, '"الاستنتاجات ونصائح للوقاية من أشعة الشمس*"')
與您的第二個查詢相同的問題。 '' - 表示一個varchar文字,N'' - 表示nvarchar。試試這個查詢來檢查:
SELECT * FROM sys.dm_fts_parser(N'"الاستنتاجات ونصائح للوقاية من أشعة الشمس"', 1025, 0, 0)
如何創建全文目錄和索引? – Backs
@Backs右鍵單擊表格,全文索引,然後定義全文索引,我創建了一個目錄,最後我選擇一個表格的列並單擊下一個按鈕。 (所以我用創建的嚮導菜單) –
如果你有很多的表中的行,它可能需要一段時間來索引...你可以添加整個sql腳本? – Backs