【发布时间】:2010-09-05 10:15:48
【问题描述】:
注意:我是使用 SQL 的全文搜索功能、CONTAINS 子句和所有 - * 是全文中的通配符,% 仅用于 LIKE 子句.
现在我在几个地方读到 MS SQL 不支持“前导通配符”搜索(例如,使用“*overflow”匹配“stackoverflow”)。我正在考虑使用CLR function to add regex matching,但我很想知道人们可能有什么其他解决方案。
更多信息:You can add the asterisk only at the end of the word or phrase. - 以及我的经验:匹配“myvalue”时,“my*”有效,但“(asterisk)value”在执行查询时返回不匹配很简单:
SELECT * FROM TABLENAME WHERE CONTAINS(TextColumn, '"*searchterm"');
因此,我需要一种解决方法。我只在我的网站上的实际搜索页面上使用搜索 - 所以它的工作方式必须与 Google 的工作方式基本相同(在 Joe Sixpack 类型的用户看来)。没有那么复杂,但这种匹配确实不应该失败。
【问题讨论】:
标签: sql-server full-text-search