全文搜索语法错误

时间:2015-01-08 23:54:42

标签: sql-server full-text-search sql-server-2014-express containstable

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

SELECT Name
FROM dbo.Gifts
WHERE CONTAINS(Name, 'gift')

它返回'测试礼物'

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

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

SELECT Name
FROM dbo.Gifts
WHERE CONTAINS(Name, 'test gift')

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

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

1 个答案:

答案 0 :(得分:5)

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

SELECT Name
FROM dbo.Gifts
WHERE CONTAINS(Name, '"test gift"')

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

SELECT Name
FROM dbo.Gifts
WHERE CONTAINS(Name, '"test" AND "gift"')

这第二个应该让你进入"礼品测试"以及"测试礼物"