You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure SQL数据库Full Text Search:如何获取匹配词汇实现高亮?

Azure SQL 全文搜索匹配词检索与高亮方案

实现思路:解析搜索词 + 字符串匹配提取

由于你的数据库不支持语义搜索、同义词库等功能,可通过以下步骤获取匹配词汇并实现高亮:

1. 解析搜索词得到标准化匹配项

使用sys.dm_fts_parser系统函数解析你的全文搜索查询,生成去除停用词后的标准化词列表,示例:

SELECT DISTINCT display_term AS match_term
FROM sys.dm_fts_parser('"你的搜索关键词"', 1033, NULL, 0)
WHERE display_term NOT IN (SELECT stopword FROM sys.fulltext_stopwords WHERE language_id = 1033);

注:1033对应英语语言ID,若你的内容是中文,需替换为2052。

2. 关联查询提取匹配词并高亮

结合字符串函数,从目标文章中筛选包含的匹配词,同时生成高亮后的内容。假设你的表是NewsArticles,内容字段为article_content,示例:

WITH parsed_search_terms AS (
    SELECT DISTINCT display_term AS match_term
    FROM sys.dm_fts_parser('"量子计算"', 2052, NULL, 0)
    WHERE display_term NOT IN (SELECT stopword FROM sys.fulltext_stopwords WHERE language_id = 2052)
)
SELECT
    article_id,
    title,
    STRING_AGG(pst.match_term, ', ') AS matched_terms,
    -- 用HTML标签高亮匹配词
    REPLACE(article_content, pst.match_term, '<strong>' + pst.match_term + '</strong>') AS highlighted_content
FROM NewsArticles na
JOIN parsed_search_terms pst ON CHARINDEX(pst.match_term, na.article_content) > 0
WHERE CONTAINS(na.article_content, '"量子计算"')
GROUP BY article_id, title, article_content;

官方文档参考

可在微软Learn中查找以下内容:

  • sys.dm_fts_parser (Transact-SQL):详细讲解该解析函数的参数与用法,用于生成标准化搜索词。
  • Azure SQL Database 全文搜索:涵盖全文搜索核心功能及基础操作指南。

内容的提问来源于stack exchange,提问作者Rigoberta Raviolini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 09:40:43