Match All クエリ機能を使用して、テーブル内のすべての行を照合し、テーブル内の行の総数をクエリしたり、複数のランダムな行を返したりできます。
前提条件
OTSClient インスタンスが初期化されていること。詳細については、OTSClient インスタンスを初期化するをご参照ください。
データテーブルが作成され、データがデータテーブルに書き込まれていること。詳細については、データテーブルを作成するおよびデータを書き込むをご参照ください。
データテーブルの検索インデックスが作成されていること。詳細については、検索インデックスを作成するをご参照ください。
パラメータ
パラメータ | 説明 |
Query | クエリのタイプ。このパラメータを MatchAllQuery に設定します。 |
TableName | データテーブルの名前。 |
IndexName | 検索インデックスの名前。 |
Limit | 現在のクエリで返す行の最大数。 特定のデータなしで、クエリ条件を満たす行の数のみをクエリするには、このパラメータを 0 に設定します。 |
GetTotalCount | クエリ条件を満たす行の総数を返すかどうかを指定します。デフォルト値: false。これは、クエリ条件を満たす行の総数が返されないことを示します。 このパラメータを true に設定すると、クエリのパフォーマンスが低下します。 |
ColumnsToGet | クエリ条件を満たす行のすべての列を返すかどうかを指定します。ReturnAll、Columns、および ReturnAllFromIndex パラメータを指定できます。 ReturnAll のデフォルト値は false で、すべての列が返されないことを指定します。次のいずれかの方法を使用して、返す列を指定できます。次の方法を使用して返す列を指定しない場合は、主キー列のみが返されます。
ReturnAll を true に設定すると、すべての列が返されます。 |
例
次のサンプルコードは、テーブル内の行の総数をクエリする方法を示しています。
/// <summary>
/// テーブル内の行の総数をクエリするために Match All クエリを実行します。
/// </summary>
/// <param name="otsClient"></param>
public static void MatchAllQuery(OTSClient otsClient)
{
var searchQuery = new SearchQuery();
searchQuery.Query = new MatchAllQuery();
searchQuery.GetTotalCount = true; // クエリ条件を満たす行の総数を返すには、GetTotalCount パラメータを true に設定します。
/*
* Match All クエリ結果では、TotalCount パラメータの値はテーブル内の行の総数を示します。
* 特定のデータなしで、クエリ条件を満たす行の数のみをクエリするには、Limit パラメータを 0 に設定します。
*/
searchQuery.Limit = 0;
var request = new SearchRequest(TableName, IndexName, searchQuery);
var response = otsClient.Search(request);
// クエリ条件を満たすすべての行が返されるかどうかを確認します。isAllSuccess パラメータの値が false の場合、Tablestore は一部のサーバーでデータのクエリに失敗する可能性があり、クエリ条件を満たすすべての行が返されない可能性があります。
Console.WriteLine("IsAllSuccess:" + response.IsAllSuccess);
Console.WriteLine("Total Count:" + response.TotalCount);
}
FAQ
参照
検索インデックスを使用してデータをクエリする場合、次のクエリメソッドを使用できます:タームクエリ、タームズクエリ、Match All クエリ、マッチクエリ、マッチフレーズクエリ、プレフィックスクエリ、範囲クエリ、ワイルドカードクエリ、ブールクエリ、ジオクエリ、ネストされたクエリ、存在クエリ。ビジネス要件に基づいて、さまざまなクエリメソッドを使用して複数のディメンションからデータをクエリできます。
並べ替え機能とページング機能を使用して、クエリ条件を満たす行を並べ替えたり、ページングしたりできます。詳細については、並べ替えとページングをご参照ください。
折りたたみ(重複排除)機能を使用して、特定の列に基づいて結果セットを折りたたむことができます。このようにして、指定されたタイプのデータはクエリ結果に一度だけ表示されます。詳細については、折りたたみ(重複排除)をご参照ください。
データテーブルのデータを分析する場合は、Search オペレーションの集計機能を使用するか、SQL ステートメントを実行できます。たとえば、最小値、最大値、合計、行の総数などを取得できます。詳細については、集計およびSQL クエリをご参照ください。
行を並べ替えることなく、クエリ条件を満たすすべての行を取得する場合は、ParallelScan および ComputeSplits オペレーションを呼び出して、パラレル スキャン機能を使用できます。詳細については、パラレル スキャンをご参照ください。