すべてのプロダクト
Search
ドキュメントセンター

Tablestore:Collapse (distinct)

最終更新日:Apr 30, 2026

collapse 機能を使用すると、特定のカラムに基づいて検索結果の重複を排除できます。クエリ結果に特定のタイプのデータが大量に含まれる場合、collapse 機能により返された結果内にそのデータが 1 回のみ表示され、結果タイプの多様性が確保されます。

前提条件

注意事項

  • collapse 機能は、offset および limit を使用したページングのみをサポートします。トークンベースのページングには対応していません。

  • 集約と collapse を結果セットに同時に適用する場合、集約は collapse 処理前の結果セットに対して実行されます。

  • collapse 機能を使用した後、返されるグループの総数は offset および limit パラメーターによって制限されます。この機能では最大 100,000 グループまで返すことができます。

  • 結果に返される総行数は、collapse 操作前の一致行数です。collapse 後のグループ総数を取得することはできません。

パラメーター

パラメーター

説明

table_name

データテーブルの名前です。

index_name

検索インデックスの名前。

query

クエリタイプです。サポートされている任意のクエリタイプを設定します。

collapse

指定されたカラムに基づいて結果セットを折りたたみます。INTEGER、FLOATING-POINT、KEYWORD カラムのみがサポートされています。

field_name:折りたたみ対象のカラム名です。

offset

クエリの開始位置です。

limit

返される最大行数です。limit0 に設定すると、実際のデータを返さずに行数のみを返します。

使用例

次のサンプルコードは、多次元インデックスを使用してテーブル php_sdk_test 内のキーワードレコードを最大 10 件取得し、カラム col1 および 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(// 必要に応じて特定のソート方法を指定します。
//            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);

よくある質問

参照

  • 多次元インデックスを使用してデータをクエリする際は、以下のクエリ方法を使用できます:完全一致検索複数値完全一致検索完全一致検索一致検索フレーズ一致検索プレフィックス検索範囲クエリワイルドカード検索ブール値クエリジオクエリネストされたクエリ、および exists クエリ。ビジネス要件に基づき、さまざまなクエリ方法を組み合わせて多角的にデータをクエリできます。

    クエリ条件を満たす行をソートまたはページングする必要がある場合は、ソートおよびページング機能を使用できます。詳細については、「ソートおよびページング」をご参照ください。

    特定のカラムに基づいて結果セットを折りたたむ必要がある場合は、collapse (distinct) 機能を使用できます。これにより、指定されたタイプのデータがクエリ結果内に 1 回のみ表示されます。詳細については、「Collapse (distinct)」をご参照ください。

  • データテーブル内のデータを分析し、最大値・最小値・合計値・総行数などを取得したい場合は、集約操作を実行するか、SQL ステートメントを実行できます。詳細については、「集約」および「SQL クエリ」をご参照ください。

  • 行をソートする必要がなく、クエリ条件を満たすすべての行を迅速に取得したい場合は、ParallelScan 操作および ComputeSplits 操作を呼び出して並列スキャン機能を使用できます。詳細については、「並列スキャン」をご参照ください。