Tous les produits
Search
Centre de documentation

Tablestore:Collapse (distinct)

Dernière mise à jour :Oct 09, 2026

Utilisez la fonctionnalité de collapse pour dédupliquer les résultats de recherche selon une colonne spécifique. Lorsque les résultats contiennent un grand volume de données d'un type particulier, le collapse n'affiche ces données qu'une seule fois, garantissant ainsi la diversité des types de résultats.

Prérequis

Limites d'utilisation

Avant d'utiliser la fonctionnalité de collapse, tenez compte des contraintes suivantes :

  • Types de colonnes pris en charge — La fonctionnalité de collapse s'applique uniquement aux colonnes de type entier, nombre à virgule flottante et Keyword. Les colonnes de type tableau ne sont pas prises en charge.

  • Pagination — La fonctionnalité de collapse prend en charge la pagination uniquement via les paramètres offset et limit. La pagination basée sur un token n'est pas prise en charge.

  • Agrégation — Lorsque vous utilisez l'agrégation statistique conjointement avec la fonctionnalité de collapse, l'agrégation s'applique uniquement à l'ensemble de résultats avant l'opération de collapse.

  • Limite du nombre de groupes — Après l'opération de collapse, le nombre total de groupes renvoyés dépend de la valeur maximale de offset plus limit. Le système renvoie au maximum 100 000 groupes.

  • Nombre total — Le nombre total de lignes dans la réponse correspond au nombre de lignes correspondantes avant l'opération de collapse. Il est impossible d'obtenir le nombre total de groupes après l'opération de collapse.

Paramètres

Paramètre

Description

table_name

Nom de la table de données.

index_name

Nom de l'index de recherche.

query

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

collapse

Effectue un collapse de l'ensemble de résultats selon la colonne spécifiée. Seules les colonnes INTEGER, FLOATING-POINT et KEYWORD sont prises en charge.

field_name : nom de la colonne sur laquelle effectuer le collapse.

offset

Position de départ de la requête.

limit

Nombre maximal de lignes à renvoyer. Définissez limit sur 0 pour renvoyer uniquement le nombre de lignes sans les données réelles.

Exemples

L'exemple de code suivant montre comment utiliser un index de recherche pour obtenir jusqu'à 10 enregistrements de mots-clés uniques dans la table php_sdk_test et renvoyer les données des colonnes col1 et col2.

$request = array(
    'table_name' => 'php_sdk_test',
    'index_name' => 'php_sdk_test_search_index',
    'search_query' => array(
        'offset' => 0,
        'limit' => 10,
        'get_total_count' => true,
        'collapse' => array(
            'field_name' => 'keyword'
        ),
        'query' => array(
            'query_type' => QueryTypeConst::MATCH_ALL_QUERY
        ),
//        'sort' => array(// Specify a specific sorting method if required. 
//            array(
//                'field_sort' => array(
//                    'field_name' => 'keyword',
//                    'order' => SortOrderConst::SORT_ORDER_ASC
//                )
//            ),
//        ),
        'token' => null,
    ),
    'columns_to_get' => array(
        'return_type' => ColumnReturnTypeConst::RETURN_SPECIFIED,
        'return_names' => array('col1', 'col2')
    )
);
$response = $otsClient->search($request);

FAQ

Références

  • Lorsque vous utilisez un index de recherche pour interroger des données, vous pouvez recourir aux méthodes de requête suivantes : term query, terms query, match all query, match query, match phrase query, prefix query, range query, wildcard query, Boolean query, geo query, nested query et exists query. Vous pouvez utiliser différentes méthodes de requête pour interroger des données selon plusieurs dimensions, en fonction de vos besoins métier.

    Si vous souhaitez trier ou paginer les lignes qui satisfont aux conditions de requête, utilisez la fonctionnalité de tri et de pagination. Pour plus d'informations, consultez la rubrique Tri et pagination.

    Si vous souhaitez effectuer un collapse de l'ensemble de résultats selon une colonne spécifique, utilisez la fonctionnalité de collapse (distinct). Ainsi, les données du type spécifié n'apparaissent qu'une seule fois dans les résultats de la requête. Pour plus d'informations, consultez la rubrique Collapse (distinct).

  • Si vous souhaitez analyser les données d'une table de données, par exemple pour obtenir les valeurs extrêmes, la somme et le nombre total de lignes, effectuez des opérations d'agrégation ou exécutez des instructions SQL. Pour plus d'informations, consultez les rubriques Agrégation et Requête SQL.

  • Si vous souhaitez obtenir rapidement toutes les lignes satisfaisant aux conditions de requête sans avoir besoin de les trier, appelez les opérations ParallelScan et ComputeSplits pour utiliser la fonctionnalité de balayage parallèle. Pour plus d'informations, consultez la rubrique Balayage parallèle.