繁体   English   中英

将 HTML 过滤器应用于 nvarchar(max) 列上的 FREETEXT SQL 查询

[英]Apply HTML filter to FREETEXT SQL Query on nvarchar(max) column

所以我正在转换现有系统以支持自由文本搜索,但我遇到了一个小问题。 列 CONTENT 是 nvarchar(max) 类型并存储 HTML,这意味着像这样的情况

<p><b>f</b>oo</p>

不会工作,因为不会应用 HTML 过滤器。 因此,我正在寻求一种解决方案,以在对该列进行 FREETEXT 查询期间手动强制 DB 在该列上使用 HTML 过滤器

SELECT [ID],[content]   
FROM [dbo].[Core_Note]
WHERE FREETEXT([content], 'banana phone noodle foo'); 

因此,此查询将返回除上述匹配项之外的所有匹配项。

当前输出将是:

<p><br></p><p>Banana!<br></p>
Banana Phone

虽然应该/希望是

<p><br></p><p>Banana!<br></p>
Banana Phone
<p><b>f</b>oo</p>

最后,没有任何有用的解决方法不会破坏 FreeTextSearch 的目的,因此 VARBINARY 和 HTML 过滤器就是答案。

详细信息:解决方案是通过创建触发器来实现的,这些触发器将以 Varbinary 的形式将相关的自由文本数据传递到自由文本表并应用相关的过滤器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM