如何使领先的通配符全文本搜索在SQL Server中起作用?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

如何使领先的通配符全文本搜索在SQL Server中起作用?

心有灵_夕 2019-12-24 21:47:29 81

注意:我正在使用SQL的全文本搜索功能,CONTAINS子句以及所有-*是全文本的通配符,%仅用于LIKE子句。

我现在已经在多个地方阅读过,MS SQL不支持“前导通配符”搜索(例如,使用“ * overflow”匹配“ stackoverflow”)。我正在考虑使用CLR函数添加正则表达式匹配,但我很想知道人们可能还有其他解决方案。

更多信息:您只能在单词或短语的末尾添加星号。-以及我的经验:匹配“ myvalue”时,“ my *”有效,但是执行以下查询时,“(星号)value”不返回匹配项:

SELECT * FROM TABLENAME WHERE CONTAINS(TextColumn, '"*searchterm"');

因此,我需要一种解决方法。我只在网站上的实际搜索页面上使用搜索-因此它的工作方式基本上与Google的工作方式相同(在Joe Sixpack类型的用户看来)。几乎没有那么复杂,但是这种匹配确实不应该失败。

SQL 开发框架 .NET
分享到
取消 提交回答
全部回答(1)
  • 心有灵_夕
    2019-12-24 21:47:53

    解决方法仅适用于前导通配符:

    将反转的文本存储在其他字段(或实体化视图)中 在此列上创建全文索引 查找带有*的反向文本

    SELECT * 
    FROM TABLENAME 
    WHERE CONTAINS(TextColumnREV, '"mrethcraes*"');
    
    

    当然,有很多缺点,只是为了快速解决...

    更不用说CONTAINSTABLE了...

    0 0
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程