摘要与高亮

在查询数据时通过设置高亮参数,返回命中查询词的片段信息并对查询词进行高亮显示。仅Text类型字段支持查询摘要与高亮功能。

前提条件

注意事项

  • 表格存储Python SDK6.0.0版本开始支持查询摘要与高亮功能。使用查询摘要与高亮功能时,请确保获取了最新的Python SDK版本。关于Python SDK历史迭代版本的更多信息,请参见Python SDK历史迭代版本

  • MatchQueryMatchPhraseQuery中使用查询摘要与高亮功能时,查询词可能会被多个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 **********')

相关文档

  • 关于查询摘要与高亮功能的更多信息,请参见摘要与高亮

  • 如果要在查询嵌套类型字段时使用查询摘要与高亮功能,请参考嵌套类型查询文档。