我会推荐这种方法:
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