【发布时间】:2014-04-28 13:58:30
【问题描述】:
我已经在 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*"')
【问题讨论】:
-
您使用的是此处提到的 prefix_term,它将获取以这些字母或单词 technet.microsoft.com/en-us/library/ms187787.aspx 开头的数据,这就是 c* 有效但不能 re* 的原因
-
如何通过全文搜索完成这个ClientReference LIKE '%re%'?
-
这是不可能的,只能按单词搜索,不能按单词中的字母搜索。
-
你能显示完整的查询吗?
-
我已经更新了我的问题。
标签: sql-server-2008 full-text-search