Sql server 2008 如果在字符串中的任何位置搜索字符,则全文搜索不起作用

Sql server 2008 如果在字符串中的任何位置搜索字符,则全文搜索不起作用,sql-server-2008,full-text-search,Sql Server 2008,Full Text Search,我已经在ClientReference列上创建了一个全文搜索索引,但是如果我想搜索字符串中任何位置出现的字符,它就不起作用了 字符串='abcdef' 这行不通 SELECT * FROM Proposals WHERE CONTAINS([ClientReference], '"*bc*"') 但如果我使用前缀,它会起作用 SELECT * FROM Proposals WHERE CONTAINS([ClientReference], '"a*"') 已添加 有人刚刚提到“这是不

我已经在ClientReference列上创建了一个全文搜索索引,但是如果我想搜索字符串中任何位置出现的字符,它就不起作用了

字符串='abcdef'

这行不通

SELECT * FROM Proposals 
WHERE CONTAINS([ClientReference], '"*bc*"')
但如果我使用前缀,它会起作用

SELECT * FROM Proposals 
WHERE CONTAINS([ClientReference], '"a*"')

已添加

有人刚刚提到“这是不可能的,你只能根据单词进行搜索,而不能根据单词内的字母进行搜索。”

那么,为什么下面的代码可以在字符串中的任何位置查找“223”

 select ClientReference1 from ClientReferences 
 where CONTAINS([ClientReference1], '"*223*"') 

如果您没有太多的文本和/或太多的行(百万以上),那么只需使用
LIKE
而不是
CONTAINS
,您可能会得到更好的服务

SELECT * FROM Proposals  WHERE ClientReference LIKE '%re%'

是否有全文搜索的理由?该字段中的文本量很小。。。也许只是像那样使用
<代码>从ClientReference(如“%re%”的提案中选择*
我不介意使用LIKE,因为我们在这个新表中不会有数百万行,但我仍然想知道全文搜索不起作用的原因。您当然不应该将
*
放在“re”之后。但不确定为什么更改它不起作用。您正在使用此处提到的前缀_术语,它将获取以这些字母或单词开头的数据,这就是c*起作用而不是re*的原因。如何通过全文搜索完成类似“%re%”的ClientReference?这是不可能的,您只能根据单词进行搜索,但不能根据单词内的字母进行搜索。您能显示完整的查询吗?我已更新了我的问题。