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

Tablestore:重複排除 (個別化)

最終更新日:Dec 28, 2024

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

前提条件

使用上の注意

  • 重複排除機能を使用する場合、トークンではなく Offset パラメーターと Limit パラメーターを指定することによってのみページングを実行できます。

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

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

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

パラメーター

パラメーター

説明

TableName

データテーブルの名前。

IndexName

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

Query

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

Collapse

重複排除パラメーター。FieldName パラメーターを含みます。

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

Offset

現在のクエリの開始位置。

Limit

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

特定のデータではなく、クエリ条件を満たす行数のみをクエリするには、Limit パラメーターを 0 に設定します。

次のサンプルコードは、テーブル内のすべてのデータをクエリし、pk0 列に基づいて結果セットを重複排除する方法の例を示しています。

/// <summary>
/// pk0 列に基づいて結果セットを重複排除します。
/// </summary>
/// <param name="otsClient"></param>
public static void UseCollapse(OTSClient otsClient)
{
    MatchAllQuery matchAllQuery = new MatchAllQuery();

    Collapse collapse = new Collapse();
    collapse.FieldName = "pk0";

    SearchQuery searchQuery = new SearchQuery();
    searchQuery.Query = matchAllQuery;
    searchQuery.Collapse = collapse;

    SearchRequest searchRequest = new SearchRequest(TableName, IndexName, searchQuery);

    SearchResponse searchResponse = otsClient.Search(searchRequest);

    foreach (Row row in searchResponse.Rows)
    {
        Console.WriteLine(JsonConvert.SerializeObject(row));
    }
}

FAQ

参考資料

  • 検索インデックスを使用してデータをクエリする場合、次のクエリメソッドを使用できます。用語クエリ複数用語クエリすべて一致クエリ一致クエリ一致フレーズクエリプレフィックスクエリ範囲クエリワイルドカードクエリブールクエリ地理クエリネストされたクエリ存在クエリ。ビジネス要件に基づいて、さまざまなクエリメソッドを使用して複数のディメンションからデータをクエリできます。

    ソート機能とページング機能を使用して、クエリ条件を満たす行をソートまたはページングできます。詳細については、ソートとページング を参照してください。

    重複排除 (個別化) 機能を使用して、特定の列に基づいて結果セットを重複排除できます。このようにして、指定されたタイプのデータはクエリ結果に一度だけ表示されます。詳細については、重複排除 (個別化) を参照してください。

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

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