Todos os produtos
Search
Central de documentação

Tablestore:Destaque

Última atualização: Jun 30, 2026

Ao consultar dados, defina parâmetros de destaque para retornar trechos de texto que contenham a string de busca com o termo pesquisado em evidência. O recurso de resumo e destaque é compatível apenas com campos do tipo Text.

Pré-requisitos

Observações de uso

  • O Tablestore SDK for Node.js V5.5.0 ou posterior oferece suporte ao recurso de destaque. Antes de utilizar esse recurso, certifique-se de ter obtido o Tablestore SDK for Node.js V5.5.0 ou superior. Para mais detalhes sobre o histórico de versões do Tablestore SDK for Node.js, consulte Histórico de versões do Tablestore SDK for Node.js.

  • Caso você ative o destaque em uma consulta de correspondência (match query) ou de frase exata (match phrase query), as strings de busca nos resultados podem ser realçadas usando múltiplas tags de abertura (preTag) e fechamento (postTag).

  • Se o método de tokenização de um campo Text for baseado na unidade semântica máxima (MaxWord), o recurso de destaque não será suportado durante consultas de frase exata nesse campo.

  • Quando configurado para retornar múltiplos fragmentos, as strings de busca podem ser divididas entre eles. Nessa situação, o destaque das strings pode não ocorrer corretamente.

Parâmetros

Parâmetro

Descrição

highlightEncoder

Método de codificação para os fragmentos de texto destacados. Valores válidos:

  • PLAIN_MODE: exibe os fragmentos de texto destacados sem necessidade de codificação. Este é o valor padrão.

  • HTML_MODE: aplica codificação HTML aos fragmentos de texto destacados. Após a codificação HTML, < é convertido em &lt;, > em &gt;, " em &quot;, ' em &#x27; e / em &#x2F;. Recomendamos o uso do formato HTML para exibição em páginas web.

fieldHighlightParams

Configurações de destaque do campo. Configure este parâmetro apenas para campos que contenham as strings de busca especificadas nos objetos SearchQuery.

HighlightParameter

numberOfFragments

Número máximo de fragmentos de texto destacados a serem retornados. Recomendamos definir este parâmetro como 1.

fragmentSize

Comprimento de cada fragmento de texto retornado. Valor padrão: 100.

Importante

O comprimento real do fragmento de texto retornado pode diferir do valor definido neste parâmetro.

preTag

Tag de abertura usada para destacar a string de busca. Exemplos: <em> e <b>. Valor padrão: <em>. Especifique uma tag de abertura personalizada conforme suas necessidades de negócio. O parâmetro preTag aceita os seguintes conjuntos de caracteres: < > " ' /, a-z, A-Z e 0-9.

postTag

Tag de fechamento usada para destacar a string de busca. Exemplos: </em> e </b>. Valor padrão: </em>. Especifique uma tag de fechamento personalizada conforme suas necessidades de negócio. O parâmetro postTag aceita os seguintes conjuntos de caracteres: < > " ' /, a-z, A-Z e 0-9.

highlightFragmentOrder

Regra de ordenação dos fragmentos de texto destacados retornados.

  • TEXT_SEQUENCE: os fragmentos são ordenados conforme sua aparição no texto original. Este é o valor padrão.

  • SCORE: a ordenação segue a pontuação das strings de busca correspondentes.

Exemplos

O exemplo abaixo demonstra como usar MatchQuery para localizar dados onde a coluna Col_Text corresponde a hangzhou shanghai e como destacar a string de busca nos resultados. A coluna Col_Text é do tipo Text.

client.search({
    tableName: "<TABLE_NAME>",
    indexName: "<SEARCH_INDEX_NAME>",
    searchQuery: {
        offset: 0,
        limit: 10, // To query only the number of rows that meet the query conditions without returning specific data, set the limit parameter to 0. 
        query: { // Set the query type to MatchQuery. 
            queryType: TableStore.QueryType.MATCH_QUERY,
            query: {
                fieldName: "Col_Text", // Specify the field that you want to match. 
                text: "hangzhou shanghai" // Specify the query string that you want to match. 
            }
        },
        highlight:{
            highlightEncoder:TableStore.HighlightEncoder.PLAIN_MODE,
            highlightParameters:[
                {
                    fieldName:"Col_Text",
                    preTag: "<b>",
                    postTag: "</b>",
                    fragmentsOrder: TableStore.HighlightFragmentOrder.TEXT_SEQUENCE,
                    fragmentSize: 20,
                    numberOfFragments: 3,
                }
                
            ],
        },
        getTotalCount: true // Specify whether to return the total number of rows that meet the query conditions. Default value: false. 
    },
    columnToGet: { // Specify the columns that you want to return. You can set the parameter to RETURN_SPECIFIED to return specific columns, RETURN_ALL to return all columns, RETURN_ALL_FROM_INDEX to return all columns in the search index, or RETURN_NONE to return only the primary key columns. 
        returnType: TableStore.ColumnReturnType.RETURN_ALL
    }
}, function (err, data) {
    if (err) {
        console.log('error:', err);
        return;
    }
    console.log('success:', JSON.stringify(data.rows, null, 2));
    printSearchHit(data.searchHits, "");
});

/**
 * Display the content that meets the query conditions. 
 * @param searchHits searchHits
 * If the output uses the @param prefix Nested structure, add the prefix to display the hierarchy information. 
 */
function printSearchHit(searchHits, prefix) {
    TableStore.util.arrayEach(searchHits, function (searchHit) {
        if (searchHit.highlightResultItem != null) {
            console.log(prefix + "Highlight: \n");
            var strBuilder = ""
            for  (const [key,val]  of searchHit.highlightResultItem.highlightFields.entries()) {
                strBuilder += key + ":[";
                strBuilder += val.fragments.join(",") + "]\n";
                console.log(strBuilder);
            }
        }
        for  (const [key,val]  of searchHit.searchInnerHits.entries()) {
            console.log(prefix + "Path: " + key + "\n");
            console.log(prefix + "InnerHit: \n");
            printSearchHit(val.subSearchHits, prefix + "    ");
        }
    });
}

Referências

  • Para informações sobre o recurso de destaque, consulte Destaque.

  • Para saber como usar o recurso de destaque ao consultar campos aninhados, consulte Consulta aninhada.