Tous les produits
Search
Centre de documentation

Tablestore:Résumé et mise en surbrillance

Dernière mise à jour :Oct 09, 2026

Lors d'une interrogation de données, définissez des paramètres de mise en surbrillance pour renvoyer des extraits de texte contenant la requête de recherche et mettre celle-ci en évidence. La fonctionnalité de résumé et de mise en surbrillance n'est prise en charge que pour les champs de type Text.

Prérequis

Remarques

  • La fonctionnalité de mise en surbrillance des requêtes est disponible à partir de la version 5.5.0 du kit SDK Tablestore pour Node.js. Assurez-vous d'utiliser une version compatible du SDK. Pour plus d'informations sur l'historique des versions du SDK Node.js, consultez la rubrique Historique des versions du SDK Node.js.

  • Lorsque vous utilisez la fonctionnalité de mise en surbrillance avec une requête MatchQuery ou MatchPhraseQuery, plusieurs balises ouvrantes et fermantes peuvent mettre la requête de recherche en surbrillance.

  • Si un champ Text utilise la tokenisation sémantique maximale, la fonctionnalité de mise en surbrillance n'est pas prise en charge pour les requêtes MatchPhraseQuery.

  • Le sharding peut diviser la requête au sein du texte source, auquel cas la mise en surbrillance ne s'applique pas.

Paramètres

Paramètre

Description

highlightEncoder

La méthode d'encodage du contenu original des fragments mis en surbrillance. Valeurs possibles :

  • PLAIN_MODE (par défaut) : Le contenu original s'affiche sans encodage.

  • HTML_MODE : Le contenu original des fragments mis en surbrillance subit un échappement HTML. Par exemple, < devient &lt;, > devient &gt;, " devient &quot;, ' devient &#x27; et / devient &#x2F;. Ce format est recommandé pour l'affichage web.

fieldHighlightParams

Les paramètres de mise en surbrillance d'un champ. Définissez ce paramètre uniquement pour les champs inclus dans une requête par mot-clé au sein de SearchQuery.

HighlightParameter

numberOfFragments

Le nombre maximal de fragments mis en surbrillance à renvoyer. Nous recommandons de définir cette valeur sur 1.

fragmentSize

La longueur de chaque fragment. Valeur par défaut : 100.

Important

La longueur des fragments renvoyés peut différer légèrement de cette valeur.

preTag

La balise ouvrante pour mettre en surbrillance la requête de recherche, par exemple <em> ou <b>. La valeur par défaut est <em>. Personnalisez la balise ouvrante selon vos besoins. L'ensemble de caractères pris en charge pour preTag inclut < > " ' /, a-z, A-Z et 0-9.

postTag

La balise fermante pour mettre en surbrillance la requête de recherche, par exemple </em> ou </b>. La valeur par défaut est </em>. Personnalisez la balise fermante selon vos besoins. L'ensemble de caractères pris en charge pour postTag inclut < > " ' /, a-z, A-Z et 0-9.

highlightFragmentOrder

La règle de tri des fragments lorsque plusieurs fragments sont renvoyés pour un champ mis en surbrillance.

  • TEXT_SEQUENCE (par défaut) : Les fragments sont triés selon leur ordre d'apparition dans le texte.

  • SCORE : Les fragments sont triés selon les scores des correspondances de la requête de recherche.

Exemple

L'exemple suivant utilise une requête de correspondance pour récupérer les lignes dont le champ description contient le terme tablestore. Il entoure les termes correspondants dans les fragments renvoyés par <b> et </b>. Le champ description est un champ de type Text pour lequel le résumé et la mise en surbrillance sont activés.

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 + "    ");
        }
    });
}

Références

  • Pour plus d'informations sur la fonctionnalité de mise en surbrillance des requêtes, consultez la rubrique Résumé et mise en surbrillance.

  • Pour plus d'informations sur l'utilisation de la fonctionnalité de mise en surbrillance avec un champ imbriqué, consultez la rubrique Requête imbriquée.