日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

在查詢數(shù)據(jù)時通過設(shè)置高亮參數(shù),返回命中查詢詞的片段信息并對查詢詞進(jìn)行高亮顯示。僅Text類型字段支持查詢摘要與高亮功能。

前提條件

注意事項

  • 在MatchQuery和MatchPhraseQuery中使用查詢高亮功能時,關(guān)鍵詞可能會被多個preTag、postTag高亮顯示。

  • 如果Text字段的分詞類型為最大語義分詞,則使用MatchPhraseQuery功能進(jìn)行數(shù)據(jù)查詢時不支持使用查詢高亮功能。

  • 分片切分可能會將文本中的查詢關(guān)鍵詞分割,此時該關(guān)鍵詞可能不會被高亮。

參數(shù)

參數(shù)

說明

highlightEncoder

對高亮分片原文內(nèi)容的編碼方式。取值范圍如下:

  • PLAIN(默認(rèn)):原文展示,不進(jìn)行編碼。

  • HTML:對高亮分片原文進(jìn)行HTML轉(zhuǎn)義,轉(zhuǎn)義包括<轉(zhuǎn)義為&lt;>轉(zhuǎn)義為&gt;"轉(zhuǎn)義為&quot;'轉(zhuǎn)義為&#x27;/轉(zhuǎn)義為&#x2F;,網(wǎng)頁展示時推薦使用HTML格式。

fieldHighlightParams

字段高亮參數(shù),僅支持設(shè)置SearchQuery中包含關(guān)鍵詞查詢的字段。

HighlightParameter

numberOfFragments

返回高亮分片的最大數(shù)量,推薦設(shè)置為1。

fragmentSize

每個分片的長度。默認(rèn)值100。

重要

實際返回分片的長度不會與該值嚴(yán)格相等。

preTag

查詢詞高亮的前置Tag,例如<em><b>。默認(rèn)值為<em>,您可以按需自定義前置Tag。preTag支持的字符集包括< > " ' /a-zA-Z0-9

postTag

查詢詞高亮的后置Tag,例如</em></b>。默認(rèn)值為</em>,您可以按需自定義前置Tag。postTag支持的字符集包括< > " ' /a-zA-Z0-9

highlightFragmentOrder

當(dāng)高亮字段返回多個分片時,分片的排序規(guī)則。

  • TEXT_SEQUENCE(默認(rèn)):片段在文本中出現(xiàn)的順序。

  • SCORE:根據(jù)命中查詢詞評分排序多個分片。

示例

以下示例用于使用MatchQuery功能查詢表中Col_Text列的值能夠匹配hangzhou shanghai的數(shù)據(jù),并在返回結(jié)果中對查詢詞進(jìn)行高亮顯示。其中Col_Text列為Text類型。

/**
 * MatchQuery查詢摘要與高亮。
 */
public static void matchQueryWithHighlighting(SyncClient client) {
    SearchRequest searchRequest = SearchRequest.newBuilder()
            .tableName("<TABLE_NAME>")
            .indexName("<SEARCH_INDEX_NAME>")
            .returnAllColumnsFromIndex(true)
            .searchQuery(SearchQuery.newBuilder()
                    .limit(5)
                    .query(QueryBuilders.bool()
                            .should(QueryBuilders.match("Col_Text", "hangzhou shanghai")))
                    .highlight(Highlight.newBuilder()
                            .addFieldHighlightParam("Col_Text", HighlightParameter.newBuilder()
                                    .highlightFragmentOrder(HighlightFragmentOrder.TEXT_SEQUENCE)
                                    .preTag("<b>")
                                    .postTag("</b>")
                                    .build())
                            .build())
                    .build())
            .build();
    SearchResponse resp = client.search(searchRequest);

    // 打印查詢和高亮結(jié)果。查詢非嵌套類型字段時設(shè)置prefix為空即可。
    printSearchHit(resp.getSearchHits(), "");
}

/**
 * 打印searchHit內(nèi)容。
 * @param searchHits searchHits
 * @param prefix Nested結(jié)構(gòu)輸出時,增加前綴以打印層次信息。
 */
private static void printSearchHit(List<SearchHit> searchHits, String prefix) {
    for (SearchHit searchHit : searchHits) {
        if (searchHit.getScore() != null) {
            System.out.printf("%s Score: %s\n", prefix, searchHit.getScore());
        }

        if (searchHit.getOffset() != null) {
            System.out.printf("%s Offset: %s\n", prefix, searchHit.getOffset());
        }

        if (searchHit.getRow() != null) {
            System.out.printf("%s Row: %s\n", prefix, searchHit.getRow().toString());
        }

        // 打印各字段高亮分片結(jié)果。
        if (searchHit.getHighlightResultItem() != null) {
            System.out.printf("%s Highlight: \n", prefix);
            StringBuilder strBuilder = new StringBuilder();
            for (Map.Entry<String, HighlightField> entry : searchHit.getHighlightResultItem().getHighlightFields().entrySet()) {
                strBuilder.append(entry.getKey()).append(":").append("[");
                strBuilder.append(StringUtils.join(",", entry.getValue().getFragments())).append("]\n");
            }
            System.out.printf("%s   %s", prefix, strBuilder);
        }

        System.out.println();
    }
}

相關(guān)文檔

  • 關(guān)于查詢摘要與高亮功能的更多信息,請參見查詢高亮

  • 如果要在查詢嵌套類型字段時使用查詢摘要與高亮功能,請參考嵌套類型查詢文檔。