是否可限制Azure Search搜索高亮结果的返回长度?
Azure Search 高亮片段长度控制方案
你现在拿到完整正文是因为默认配置下高亮片段的最大长度阈值很高,且没有限制返回的片段数量,调整查询时的高亮相关参数即可实现匹配关键词上下仅保留2-4行内容的需求:
- 首先限制单字段返回的高亮片段数量:在指定高亮字段时加
-数字后缀,比如你的邮件正文字段名为emailContent,就设置为highlight=emailContent-3,这里的数字代表最多返回3个匹配的高亮片段,避免多匹配场景下返回大量内容。 - 控制单片段的长度:通过
highlightMaxLength参数配置单个高亮片段的最大字符数,你可以根据自身邮件的平均行字符数计算,比如单行平均100字符的话,设置为500-600即可覆盖匹配内容加上下各2-4行的范围,可根据实际展示效果微调数值。 - 如果要适配不同格式邮件的换行差异,拿到返回结果后可以按换行符
\n切割片段内容,仅保留包含高亮标签的行以及其前后各2-4行的内容即可。
参考查询请求示例:
POST https://[你的搜索服务名].search.windows.net/indexes/[你的索引名]/docs/search?api-version=2023-11-01 { "search": "你要搜索的关键词", "highlight": "emailContent-3", "highlightMaxLength": 600, "highlightPreTag": "<em>", "highlightPostTag": "</em>" }
注意highlightMaxLength不要设置低于100,否则可能出现匹配关键词被截断无法正常高亮的问题。
内容的提问来源于stack exchange,提问作者Piotr Perak
相关产品推荐
相关产品推荐

