SQL FREETEXT搜索转义空间

时间:2014-02-18 20:41:44

标签: sql full-text-search freetext thesaurus

我的数据库中有一个同义词表,我想使用FREETEXT收集数据。但是我正在搜索的字符串包含空格。

例如,我想搜索代码“AB 001”

select * 
from TheThesaurus
where freetext(TheDefinition, 'AB 001')

此代码将搜索“AB”和“001”,这将给我带来更多垃圾结果。我尝试将字符串放在双引号中,但它也不起作用。

select * 
from TheThesaurus
where freetext(TheDefinition, '"AB 001"')

我怎么能这样做我可以搜索完整的“AB 001”字符串??

我使用LIKE并且它给了我想要的结果,但是我想尝试全文搜索,因为它更快,并且在我的情况下会给出更准确的结果。

select * 
from TheThesaurus
where TheDefinition LIKE '%AB 001%'

谢谢!

修改

我尝试使用CONTAINS,但它给了我额外的结果,我无法理解他们为什么被退回。 CONTAINS函数对我来说也不起作用:/

select * 
from TheThesaurus
where Contains(TheDefinition, 'AB%001')

1 个答案:

答案 0 :(得分:0)

查询

选择* 来自TheThesaurus 包含的地方(TheDefinition,'“AB 001”')

将为您提供带有正确结果的短语搜索