我尝试在SQL Server 2014上使用“CONTAINS()”实现搜索机制.
我在这里阅读了https://technet.microsoft.com/en-us/library/ms142538%28v=sql.105%29.aspx,在“SQL Server 2008中的Pro全文搜索”一书中,我需要使用双引号来搜索确切的短语.
但e.q.如果我使用这个CONTAINS(*,’“test”’),我会收到包含像“numerictest”这样的单词的结果.如果我尝试CONTAINS(*,’“test”’),它就是一样的.我注意到,结果较少,好像我会用CONTAINS(*,’* test *’)搜索前缀,sufix搜索,因此搜索之间肯定有一个增量.
我没想到第一个声明中的“numerictest”.这种行为有解释吗?
最佳答案 包含(*,’“test”’)只会匹配您所期望的“test”的完整单词.
包含(*,’“test”’)与上面相同
包含(*,’“* test *”’)实际上只会进行PREFIX ONLY搜索,基本上会在单词的开头删除任何特殊字符并仅使用第二个*.
您无法使用全文搜索进行POSTFIX搜索.
我关注的是Contains(*)部分,它将搜索整行中的任何全文编目项.在没有看到数据的情况下很难说,但我的猜测是,你认为那行中的另一列实际上是匹配“某个地方的”测试“.