全部產品
Search
文件中心

OpenSearch:搜尋結果摘要

更新時間:Jul 13, 2024

一般文檔內容會比較長,而在實際展示搜尋結果的時候,不可能完全展示出來。這時候就需要做摘要及飄紅設定。系統會截取包含搜尋結果的幾個片段,供使用者瞭解具體匹配內容,以快速判斷是否是自己想要的結果。使用者可以在控制台對搜尋結果的展示效果進行自訂設定,設定完成後,調用 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>OpenSearch</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