我有一个名为'name'的FULLTEXT列,每行可能包含多个单词。使用CONTAINS,我可以搜索可变数量的单词,它可以工作,除非其中一个单词中有一个&符号。
示例:name ='Bob Brown AB& CD' 这有效:
CONTAINS(name, '"*Bo*" AND "*Br*"')
这些没有(用&符号搜索任何单词):
CONTAINS(name, '"*AB*"')
CONTAINS(name,'"*AB&CD*"')
CONTAINS(name,'"*&*"')
我意识到为什么最后一次搜索不起作用,因为CONTAINS只从单词的开头搜索。
&符号是否被FULLTEXT处理为分词?如果是这样,这可能解释为什么包括&符号的搜索会失败。但它无法解释为什么
CONTAINS(name, '"*AB*"')
CONTAINS(name, '"*CD*"') (assuming FULLTEXT sees "CD" as a different word)
会失败。
如果我搜索“AB& CD”或只搜索“AB”或只搜索“CD”,如何减轻搜索以便返回行?
P.S。动态SQL不是一个选项,因此我无法连接可变数量的LIKE。
答案 0 :(得分:0)
显然,我找到了答案。我设置了
STOPLIST = OFF
在我的FULLTEXT索引上,现在我可以成功搜索“ AB ”和“ AB& CD ”。