簡體   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