Todos los productos
Search
Centro de documentos

Tablestore:Resumen y resaltado

Última actualización: Oct 09, 2026

Al consultar datos, puede establecer parámetros de resaltado para devolver fragmentos de texto que contengan la consulta de búsqueda y resalten dicha consulta. La función de resumen y resaltado solo es compatible con campos de tipo Text.

Requisitos previos

Notas

  • La función de resaltado de consultas está disponible en Tablestore Node.js Software Development Kit (SDK) 5.5.0 y versiones posteriores. Asegúrese de usar una versión del SDK compatible. Para conocer el historial de versiones del SDK de Node.js, consulte Node.js SDK release history.

  • Cuando usa la función de resaltado de consultas con MatchQuery o MatchPhraseQuery, la consulta de búsqueda podría resaltarse con varias etiquetas de apertura y de cierre.

  • Si un campo Text usa tokenización con semántica máxima, la función de resaltado de consultas no es compatible con MatchPhraseQuery.

  • Es posible que una consulta de búsqueda no se resalte si la fragmentación divide la consulta dentro del texto original.

Parámetros

Parámetro

Descripción

highlightEncoder

Método de codificación para el contenido original de los fragmentos resaltados. Valores válidos:

  • PLAIN_MODE (predeterminado): el contenido original se muestra sin codificar.

  • HTML_MODE: el contenido original de los fragmentos resaltados se escapa en formato HTML. Por ejemplo, < se escapa como &lt;, > como &gt;, " como &quot;, ' como &#x27; y / como &#x2F;. Se recomienda este formato para mostrarlo en la web.

fieldHighlightParams

Parámetros de resaltado de un campo. Este parámetro solo se puede configurar para los campos incluidos en una consulta por palabra clave dentro de SearchQuery.

HighlightParameter

numberOfFragments

Número máximo de fragmentos resaltados que se devuelven. Se recomienda establecer este valor en 1.

fragmentSize

Longitud de cada fragmento. Valor predeterminado: 100.

Importante

La longitud de los fragmentos devueltos podría no coincidir exactamente con este valor.

preTag

Etiqueta de apertura para resaltar la consulta de búsqueda, como <em> o <b>. El valor predeterminado es <em>. Personalice la etiqueta de apertura según sus necesidades. El conjunto de caracteres compatible con preTag incluye < > " ' /, a-z, A-Z y 0-9.

postTag

Etiqueta de cierre para resaltar la consulta de búsqueda, como </em> o </b>. El valor predeterminado es </em>. Personalice la etiqueta de cierre según sus necesidades. El conjunto de caracteres compatible con postTag incluye < > " ' /, a-z, A-Z y 0-9.

highlightFragmentOrder

Regla de ordenamiento de los fragmentos cuando se devuelven varios para un campo resaltado.

  • TEXT_SEQUENCE (predeterminado): los fragmentos se ordenan según su aparición en el texto.

  • SCORE: los fragmentos se ordenan según las puntuaciones de las coincidencias de la consulta de búsqueda.

Ejemplo

A continuación se muestra un ejemplo que usa una consulta de coincidencia para recuperar las filas donde el campo description contiene el término tablestore. En este caso, los términos coincidentes de los fragmentos devueltos se encierran entre <b> y </b>. El campo description es de tipo Text y tiene habilitada la función de resumen y resaltado.

client.search({
    tableName: "<TABLE_NAME>",
    indexName: "<SEARCH_INDEX_NAME>",
    searchQuery: {
        offset: 0,
        limit: 10, // To get only the row count without any specific data, set limit to 0. This prevents any rows from being returned.
        query: { // Set the query type to MatchQuery.
            queryType: TableStore.QueryType.MATCH_QUERY,
            query: {
                fieldName: "Col_Text", // Set the column to match.
                text: "hangzhou shanghai" // Set the value to match.
            }
        },
        highlight:{
            highlightEncoder:TableStore.HighlightEncoder.PLAIN_MODE,
            highlightParameters:[
                {
                    fieldName:"Col_Text",
                    preTag: "",
                    postTag: "",
                    fragmentsOrder: TableStore.HighlightFragmentOrder.TEXT_SEQUENCE,
                    fragmentSize: 20,
                    numberOfFragments: 3,
                }
                
            ],
        },
        getTotalCount: true // TotalCount in the results indicates the total number of rows in the table. The default value is false, which means the total count is not returned.
    },
    columnToGet: { // The columns to return. Valid values: RETURN_SPECIFIED (return custom columns), RETURN_ALL (return all columns), RETURN_ALL_FROM_INDEX (return all columns from the search index), and RETURN_NONE (return no 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, "");
});

/**
 * Print the content of searchHits.
 * @param searchHits The search hits.
 * @param prefix The prefix to add for nested structures to print hierarchical 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 + "    ");
        }
    });
}

Referencias

  • Para obtener más información sobre la función de resaltado de consultas, consulte Summary and highlighting.

  • Para conocer cómo usar la función de resaltado de consultas con un campo anidado, consulte Nested query.