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

Tablestore:重複排除 (個別化)

最終更新日:Dec 28, 2024

クエリの結果に特定の種類の大量のデータが含まれている場合、重複排除 (個別化) 機能を使用して、特定の列に基づいて結果セットを重複排除できます。特定の種類のデータは、返された結果に 1 回だけ表示され、結果の種類の多様性が確保されます。

前提条件

使用上の注意

  • 重複排除 (個別化) 機能を使用する場合、offset パラメーターと limit パラメーターを指定することによってのみページネーションを実行できます。

  • 結果セットを集計し、同時に重複排除する場合、結果セットは重複排除される前に集計されます。

  • クエリの結果を重複排除する場合、返される結果の総数は、offset パラメーターと limit パラメーターの値の合計によって決まります。最大 100,000 件の結果を返すことができます。

  • レスポンスの行の総数は、重複排除 (個別化) 機能を使用する前にクエリ条件を満たす行の数を示します。結果セットが重複排除された後、個別値の総数をクエリすることはできません。

パラメーター

パラメーター

説明

table_name

データテーブルの名前。

index_name

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

query

クエリタイプ。このパラメーターは任意のクエリタイプに設定できます。

collapse

field_name フィールドで指定された列に基づいて結果セットを重複排除します。

field_name: 結果セットの重複排除の基準となる列の名前。値が INTEGER、FLOATING-POINT、および KEYWORD タイプの列のみがサポートされています。

offset

現在のクエリが開始される位置。

limit

現在のクエリで返される最大行数。

特定のデータを返さずに、クエリ条件を満たす行数のみをクエリするには、limit を 0 に設定します。このようにすると、Tablestore はテーブルからの特定のデータなしで、クエリ条件を満たす行数を返します。

次のサンプルコードは、検索インデックスを使用して、テーブル 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);

FAQ

参考資料