3

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

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

它返回“测试礼物”

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

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

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

它抛出一个错误说:全文搜索条件'test gift'中'gift'附近的语法错误。

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

4

1 回答 1

8

您需要双引号来管理该空间,请记住您正在搜索整个字符串,而不是字符串中的单词。以下查询会找到“test gift”,但不会找到“gift test”

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

或者,如果您想单独搜索单词,它将是

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

第二个应该为您提供“礼物测试”和“测试礼物”的字段

于 2015-01-09T00:56:56.510 回答