如何在全文sql Server中转义一个括号contains()查询?我已经尝试了以下所有功能,其中没有一个工作:
CONTAINS(crev.RawText,'arg[0]') CONTAINS(crev.RawText,'arg[[0]]') CONTAINS(crev.RawText,'arg\[0\]')
使用双引号可以工作,但它会强制整个搜索成为一个短语,这是多个单词查询的showstopper.
CONTAINS(crev.RawText,'"arg[0]"')
我真的想做的只是摆脱支架,但我似乎不会这样做
解决方法
你不必逃避[在全文搜索中没有特别的意义].如果您确实需要搜索完全匹配,则可以使用“”标记.
此外,您可以在单引号内使用多个“”:
CONTAINS('"word1" or "word2" or "word3"')
这也可以:
CONTAINS('"word1" and "word2" and "word3"')
双引号内的任何内容都将被视为确切的文字.因此,如果我要对AdventureWorks中的Production.ProductDescription表的Description字段进行搜索,我可以使用
CONTAINS('shifting and "on or off-road"')
并且它会找到匹配的词移动,也有短语“在或越野”.
唯一的特殊符号是〜,可以用来代替NEAR命令.
CONTAINS('shifting ~ smooth')
是相同的
CONTAINS('shifting NEAR smooth')
并且将找到匹配的词匹配,并且平滑相互靠近.