SQL Server全文搜索中如何在CONTAINS中使用通配符替代LIKE查询
等效CONTAINS查询实现方案
前置要求
使用CONTAINS前必须先为Languages表的Description列创建全文索引,否则语法会报错。
注意事项
SQL Server 全文搜索的CONTAINS谓词默认仅支持后缀通配符(通配符*只能放在搜索词末尾,匹配以前缀开头的所有分词),原生不支持前缀通配符,所以无法100%和LIKE '%任意子串%'的任意位置子串匹配逻辑完全对齐。如果你的搜索场景仅需要匹配包含icro片段的词,可使用如下写法:
SELECT * FROM Languages WHERE CONTAINS(Description, '"*icro*"')
结果验证
在你提供的示例数据中,上述查询会命中Description字段包含Microsoft的ID=1的记录,和原LIKE语句返回结果一致。
内容的提问来源于stack exchange,提问作者user14620414
相关产品推荐
相关产品推荐

