全部產品
Search
文件中心

:查詢高亮

更新時間:Sep 13, 2024

在查詢資料時通過設定高亮參數,返回命中查詢關鍵詞的片段資訊並對關鍵詞進行高亮顯示。僅Text類型欄位支援查詢高亮功能。

前提條件

注意事項

  • Table StorePython SDK從6.0.0版本開始支援查詢高亮功能。使用查詢高亮功能時,請確保擷取了最新的Python SDK版本。關於Python SDK歷史迭代版本的更多資訊,請參見Python SDK歷史迭代版本

  • 在MatchQuery和MatchPhraseQuery中使用查詢高亮功能時,關鍵詞可能會被多個pre_tag、post_tag高亮顯示。

  • 如果Text欄位的分詞類型為最大語義分詞,則使用MatchPhraseQuery功能進行資料查詢時不支援使用查詢高亮功能。

  • 分區切分可能會將文本中的查詢關鍵詞分割,此時該關鍵詞可能不會被高亮。

參數

參數

說明

highlight_encoder

對高亮分區原文內容的編碼方式。取值範圍如下:

  • PLAIN_MODE(預設):原文展示,不進行編碼。

  • HTML_MODE:對高亮分區原文進行HTML轉義,轉義包括<轉義為&lt;>轉義為&gt;"轉義為&quot;'轉義為&#x27;/轉義為&#x2F;,網頁展示時推薦使用HTML格式。

highlight

欄位高亮參數,僅支援設定SearchQuery中包含關鍵詞查詢的欄位。

highlight_parameters

number_of_fragments

返回高亮分區的最大數量,推薦設定為1。

fragment_size

每個分區的長度。預設值100。

重要

實際返回分區的長度不會與該值嚴格相等。

pre_tag

查詢關鍵詞高亮的前置Tag,例如<em><b>。預設值為<em>,您可以按需自訂前置Tag。preTag支援的字元集包括< > " ' /a-zA-Z0-9

post_tag

查詢關鍵詞高亮的後置Tag,例如</em></b>。預設值為</em>,您可以按需自訂前置Tag。postTag支援的字元集包括< > " ' /a-zA-Z0-9

fragments_order

當高亮欄位返回多個分區時,分區的定序。

  • TEXT_SEQUENCE(預設):片段在文本中出現的順序。

  • SCORE:根據命中關鍵詞評分排序多個分區。

樣本

以下樣本用於使用MatchQuery功能查詢表中Col_Text列的值能夠匹配hangzhou shanghai的資料,並在返回結果中對關鍵詞進行高亮顯示。其中Col_Text列為Text類型。

def match_query_with_highlight(client):
    query = MatchQuery('Col_Text', 'hangzhou shanghai')
    highlight_parameter = HighlightParameter('Col_Text',None,None,pre_tag='<b>',post_tag='</b>')
    highlight_clause = Highlight([highlight_parameter],HighlightEncoder.PLAIN_MODE)
    search_response = client.search(
        '<TABLE_NAME>', '<SEARCH_INDEX_NAME>',
        SearchQuery(query, limit=100, get_total_count=True,highlight=highlight_clause),
        ColumnsToGet(return_type=ColumnReturnType.ALL)
    )
    print('----- Print Highlight Result:')
    search_hits = search_response.search_hits
    print('search hit count:%d' % len(search_hits))

    for search_hit in search_hits:
        print('\t score is %.6f' % search_hit.score)
        for highlight_field in search_hit.highlight_result.highlight_fields:
            print('\t\t highlight:%s:%s' % (highlight_field.field_name, highlight_field.field_fragments))

    print('********** End HighlightQuery **********')

相關文檔

  • 關於查詢高亮功能的更多資訊,請參見查詢高亮

  • 如果要在查詢巢狀型別欄位時使用查詢高亮功能,請參考巢狀型別查詢文檔。