一般文档内容会比较长,而在实际展示搜索结果的时候,不可能完全展示出来。这时候就需要做摘要及飘红设置。系统会截取包含搜索结果的几个片段,供用户了解具体匹配内容,以快速判断是否是自己想要的结果。用户可以在控制台对搜索结果的展示效果进行自定义设置,设置完成后,调用 API 时,系统会自动获取用户配置,并添加到查询 query 中,无需用户再次传入。当然也可以在 API 参数中通过 summary 参数进行具体查询的控制。
主要参数介绍
-
字段:需要配置摘要的字段
-
片段长度:表示整个摘要最大长度
-
飘红标签:关键词飘红的html标签
-
片段连接符:每个片段之间的连接符
-
片段数量:在摘要长度内需要几个片段
控制台配置及生效
1.控制台——>功能扩展——>搜索结果展示,配置搜索结果摘要

2.以下示例为飘红标签的配置。飘红标签为em。
示例中对 title 字段配置了摘要,片段长度为 50,飘红标签为 em,片段链接符为 …,片段数量为 5。
SDK/API配置
-
API 参数中,通过 summary 参数指定。
-
SDK配置,以java sdk为例,demo:
// 设置搜索结果摘要信息,此处采用下面的SearchParams对象添加搜索结果摘要,比较简便 Summary summ = new Summary("name"); summ.setSummary_field("name");//指定的生效的字段。此字段必需为可分词的text类型的字段。 summ.setSummary_len("50");//片段长度 summ.setSummary_element("em"); //飘红标签 summ.setSummary_ellipsis("...");//片段链接符 summ.setSummary_snippet("1");//片段数量 //添加Summary对象参数温馨提示:
-
SDK的SearchParams类中summary对象参数中暂时不能指定飘红的前后缀(必须是完整html标签),前后缀默认为<>,比如设置飘红标签为em,飘红后返回的JSON结果格式为:阿里云<em>开放搜索</em>产品文档;
-
若要在SDK中设置飘红的前后缀,请使用searchParamsBuilder对象。
// SearchParams的工具类,提供了更为便捷的操作 SearchParamsBuilder paramsBuilder = SearchParamsBuilder.create(searchParams); // 使用SearchParamsBuilder对象添加搜索结果摘要 paramsBuilder.addCustomParam("summary", "summary_field:name,summary_ellipsis:...,summary_snipped:1,summary_len:50,summary_element_prefix:<abc>,summary_element_postfix:</abc>"); // 添加多个summary_field用分号分割注意事项
-
飘红只会飘红query的查询词,并且飘红字段一定要建索引,否则会显示异常。
-
不支持摘要与飘红分开配置。
-
若配置多个摘要字段,并且对应摘要字段值中有包含索引中指定搜索关键词的分词,则这些摘要字段中对应分词内容都会摘要飘红。
-
命中的term比较靠后,超过了10000个字节的最大限制时,不会显示飘红。
-
飘红对于html里面的< > 两个全部默认会做转义,转成< >
-
若对应用中某个字段分别创建不同分词类型,例如同时创建了中文基础及单字分词,此时中文单字分词摘要飘红会有问题,该摘要飘红内容只会匹配中文基础分词,或出现内容飘红不对。
-
同一个请求query中,设置2种及以上不同类型分词索引进行搜索召回,会导致不飘红或飘红异常。
-
如果飘红片段包含特殊字符,返回文档会过滤特殊字符;如果需要显示特殊字符,可以设置自定义子句kvpairs=filter_punc:0以跳过特殊字符过滤。
摘要飘红效果展示
搜索关键词友情后,搜索结果列表中每条记录下方显示摘要片段,摘要中命中的关键词以飘红样式突出显示。每条结果包含标题、来源、作者、分类、状态、字数、评分等字段,并提供开始阅读按钮。页面顶部还支持按分类、字数、状态进行筛选,以及按更新时间、评分数、订阅数等维度排序。