全部产品
Search
文档中心

智能开放搜索 OpenSearch:搜索结果摘要

更新时间:Sep 18, 2023

一般文档内容会比较长,而在实际展示搜索结果的时候,不可能完全展示出来。这时候就需要做摘要及飘红设置。系统会截取包含搜索结果的几个片段,供用户了解具体匹配内容,以快速判断是否是自己想要的结果。用户可以在控制台对搜索结果的展示效果进行自定义设置,设置完成后,调用 API 时,系统会自动获取用户配置,并添加到查询 query 中,无需用户再次传入。当然也可以在 API 参数中通过 summary 参数进行具体查询的控制。

主要参数介绍

  • 字段:需要配置摘要的字段

  • 片段长度:表示整个摘要最大长度

  • 飘红标签:关键词飘红的html标签

  • 片段连接符:每个片段之间的连接符

  • 片段数量:在摘要长度内需要几个片段

控制台配置及生效

1.控制台——>功能扩展——>搜索结果展示配置搜索结果摘要

00000000000000000000

2.以下示例为飘红标签的配置。飘红标签为em。

2

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里面的< > 两个全部默认会做转义,转成&lt; &gt;

  • 若对应用中某个字段分别创建不同分词类型,例如同时创建了中文基础及单字分词,此时中文单字分词摘要飘红会有问题,该摘要飘红内容只会匹配中文基础分词,或出现内容飘红不对。

  • 同一个请求query中,设置2种及以上不同类型分词索引进行搜索召回,会导致不飘红或飘红异常。

  • 如果飘红片段包含特殊字符,返回文档会过滤特殊字符;如果需要显示特殊字符,可以设置自定义子句kvpairs=filter_punc:0以跳过特殊字符过滤。

摘要飘红效果展示

3