Tous les produits
Search
Centre de documentation

Tablestore:Regroupement (distinct)

Dernière mise à jour :Aug 18, 2026

Si une requête renvoie de nombreux résultats partageant une même valeur dans une colonne spécifique, utilisez la fonctionnalité de regroupement. Celle-ci groupe l'ensemble des résultats selon cette colonne et garantit que chaque valeur unique n'apparaît qu'une seule fois. Vous obtenez ainsi un ensemble de données plus diversifié.

Prérequis

Notes

  • La fonctionnalité collapse prend en charge la pagination uniquement via les paramètres offset et limit. Elle ne prend pas en charge la pagination par jeton.

  • Lorsque vous combinez l'agrégation statistique et la fonctionnalité collapse, l'agrégation s'applique à l'ensemble des résultats avant le regroupement.

  • Après utilisation de la fonctionnalité collapse, le nombre total de groupes renvoyés est limité par les paramètres offset et limit. Le nombre maximal de groupes renvoyés est de 100 000.

  • Le nombre total de lignes renvoyé correspond au nombre de lignes correspondantes avant l'opération de regroupement (collapse). Il est impossible de récupérer le nombre total de groupes après le regroupement.

Paramètres

Paramètre

Description

query

Type de requête. Définissez ce paramètre sur n'importe quel type de requête.

collapse

Regroupe l'ensemble des résultats selon le champ spécifié par le paramètre fieldName.

fieldName : nom du champ servant de base au regroupement des résultats. Seuls les champs de type INTEGER, FLOATING-POINT ou KEYWORD sont pris en charge. Les champs de type ARRAY ne sont pas pris en charge.

offset

Position de départ de la requête actuelle.

limit

Nombre maximal de lignes que la requête actuelle doit renvoyer.

Pour obtenir uniquement le nombre de lignes correspondant aux conditions de requête sans récupérer leurs données, définissez le paramètre limit sur 0.

getTotalCount

Indique si le nombre total de lignes correspondant aux conditions de requête doit être renvoyé. La valeur par défaut est false, ce qui signifie que le nombre total de lignes n'est pas renvoyé.

La définition de ce paramètre sur true dégrade les performances de la requête.

tableName

Nom de la table de données.

indexName

Nom de l'index de recherche.

columnsToGet

Indique si toutes les colonnes de chaque ligne correspondant aux conditions de requête doivent être renvoyées.

  • Si vous définissez returnType sur TableStore.ColumnReturnType.RETURN_SPECIFIED, configurez returnNames pour spécifier les colonnes à renvoyer.

  • Si vous définissez le paramètre returnType sur TableStore.ColumnReturnType.RETURN_ALL, toutes les colonnes sont renvoyées.

  • Si vous définissez le paramètre returnType sur TableStore.ColumnReturnType.RETURN_ALL_FROM_INDEX, toutes les colonnes de l'index de recherche sont renvoyées.

  • Si vous définissez le paramètre returnType sur TableStore.ColumnReturnType.RETURN_NONE, seules les colonnes de clé primaire sont renvoyées.

Exemples

L'exemple de code suivant montre comment utiliser une requête MatchAllQuery pour interroger le nombre total de lignes d'une table et regrouper l'ensemble des résultats selon la valeur de la colonne col_keyword :

let searchQuery = {
    offset: 0,
    limit: 100,
    query: {
        queryType: TableStore.QueryType.MATCH_ALL_QUERY,
    },
    collapse: {
        fieldName: "col_keyword",
    },
    getTotalCount: false,
};
let params = {
    tableName: tableName,
    indexName: indexName,
    searchQuery: searchQuery,
    columnToGet: { // Specify the columns that you want to return. You can set the parameter to RETURN_SPECIFIED to return the specified 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_FROM_INDEX
    },
    timeoutMs: 30000,
}
client.search(params, function (err, data) {
    if (err) {
        console.log('search error:', err.toString());
    } else {
        console.log('search success:', data);
    }
});

FAQ

Références