全文搜索语法错误

use*_*050 2 sql-server full-text-search containstable sql-server-2014-express

我使用目录和索引创建了一个全文搜索,当我运行一个如下所示的单词查询时,包含查询工作正常.

SELECT Name
FROM dbo.Gifts
WHERE CONTAINS(Name, 'gift')
Run Code Online (Sandbox Code Playgroud)

它返回'测试礼物'

我在表中只有一行,而Name列中的数据如下所示:'test gift'

但是当我用这个语句运行conaints查询时:

SELECT Name
FROM dbo.Gifts
WHERE CONTAINS(Name, 'test gift')
Run Code Online (Sandbox Code Playgroud)

它会抛出错误说明:全文搜索条件"测试礼物"中"礼物"附近的语法错误.

我认为包含可以查询短语和多个匹配和听起来相似的单词?

Rya*_* B. 5

您需要双引号来管理该空间,请记住您正在搜索整个字符串,而不是字符串的单词.以下查询将找到"测试礼物"而不是"礼物测试"

SELECT Name
FROM dbo.Gifts
WHERE CONTAINS(Name, '"test gift"')
Run Code Online (Sandbox Code Playgroud)

或者,如果你想单独搜索单词,那就是

SELECT Name
FROM dbo.Gifts
WHERE CONTAINS(Name, '"test" AND "gift"')
Run Code Online (Sandbox Code Playgroud)

第二个应该给你一个"礼物测试"和"测试礼物"的领域