SQL全文搜索问题

时间:2011-03-09 20:59:54

标签: sql full-text-search

我的全文搜索出错了什么?如果这个代码

Select UserID, UserName
From Users
Where Contains([UserName], '%Jack%')

我收回用户插孔,但如果我这样做

Select UserID, UserName
From Users
Where Contains([UserName], '%Ja%')

我什么都搞错了什么都没有?

2 个答案:

答案 0 :(得分:3)

您正在将LIKE语法与CONTAINS混合使用。请记住,全文搜索是基于单词的,而像搜索字符串中的字符模式一样。

尝试:

Select UserID, UserName
From Users
Where Contains([UserName], '"Ja*"')

答案 1 :(得分:0)

Contains([UserName], '"Ja*"') - PREFIX搜索的语法。匹配“杰克”而不是“阿贾克斯”

您无法使用全文搜索进行任何POSTFIX搜索。如果你要尝试:

Contains([UserName], '"*Ja*"') -- wrapped in *

这实际上仍会进行PREFIX ONLY搜索,它将删除所有不正确语法的特殊字符,这意味着第一个*将被剥离然后运行。如果您需要开放式搜索,则需要使用%%仍然查找内部部分或单词。