範囲クエリを実行して、指定した範囲内にあるデータをクエリできます。クエリするフィールドのタイプが TEXT の場合、フィールド値はトークン化されます。行内のトークンの少なくとも 1 つがクエリ範囲と一致する場合、行はクエリ条件を満たします。
前提条件
OTSClient インスタンスが初期化されていること。詳細については、OTSClient インスタンスの初期化を参照してください。
データテーブルが作成され、データがデータテーブルに書き込まれていること。詳細については、データテーブルの作成とデータの書き込みを参照してください。
データテーブルの検索インデックスが作成されていること。詳細については、検索インデックスの作成を参照してください。
パラメーター
パラメーター | 説明 |
GetTotalCount | クエリ条件を満たす行の総数を返すかどうかを指定します。このパラメーターのデフォルト値は false で、クエリ条件を満たす行の総数は返されません。 このパラメーターを true に設定すると、クエリのパフォーマンスが低下します。 |
Query | クエリタイプ。範囲クエリを使用するには、このパラメーターを RangeQuery に設定します。 |
FieldName | 一致させるフィールドの名前。 |
From | クエリを開始する値。 |
To | クエリを終了する値。 |
IncludeLower | 一致させる列の値が From パラメーターの値と等しい行をレスポンスに含めるかどうかを指定します。このパラメーターの値の型はブール値です。 |
IncludeUpper | 一致させる列の値が To パラメーターの値と等しい行をレスポンスに含めるかどうかを指定します。このパラメーターの値の型はブール値です。 |
TableName | データテーブルの名前。 |
IndexName | 検索インデックスの名前。 |
ColumnsToGet | クエリ条件を満たす各行のすべての列を返すかどうかを指定します。このパラメーターには、ReturnAll、Columns、および ReturnAllFromIndex を設定できます。 ReturnAll のデフォルト値は false で、すべての列が返されるわけではないことを指定します。次のいずれかの方法を使用して、返す列を指定できます。次の方法を使用して返す列を指定しない場合、主キー列のみが返されます。
ReturnAll を true に設定すると、すべての列が返されます。 |
例
次のサンプルコードは、Long_type_col 列の値が 0 以上 6 未満の行をクエリする方法の例を示しています。この例では、クエリ条件を満たす行の総数が返されます。
/// <summary>
/// Long_type_col 列の値が 0 以上 6 未満の行をテーブルで検索します。
/// </summary>
/// <param name="otsClient"></param>
public static void RangeQuery(OTSClient otsClient)
{
var searchQuery = new SearchQuery();
// クエリ条件を満たす行の総数を返すように指定します。
searchQuery.GetTotalCount = true;
var rangeQuery = new RangeQuery(Long_type_col, new ColumnValue(0), new ColumnValue(6));
// 一致させる列の値が From パラメーターの値と等しい行をレスポンスに含めるように指定します。
rangeQuery.IncludeLower = true;
searchQuery.Query = rangeQuery;
var request = new SearchRequest(TableName, IndexName, searchQuery);
// ColumnsToGet パラメーターを設定して返す列を指定するか、すべての列を返すように指定するか、検索インデックス内のすべての列を返すように指定できます。このパラメーターを設定しない場合、主キー列のみが返されます。
request.ColumnsToGet = new ColumnsToGet()
{
// 検索インデックス内のすべての列を返すように指定します。
ReturnAllFromIndex = true
// 返す列を指定します。
//Columns = new List<string>() { Long_type_col, Text_type_col, Keyword_type_col }
// すべての列を返すように指定します。
//ReturnAll = true
};
var response = otsClient.Search(request);
Console.WriteLine("Total Count:" + response.TotalCount); // 返される行数ではなく、クエリ条件を満たす行の総数が表示されるように指定します。
}
FAQ
参考資料
検索インデックスを使用してデータをクエリする場合、次のクエリメソッドを使用できます。タームクエリ、タームズクエリ、すべて一致クエリ、一致クエリ、一致フレーズクエリ、プレフィックスクエリ、範囲クエリ、ワイルドカードクエリ、ブールクエリ、ジオクエリ、ネストされたクエリ、存在クエリ。ビジネス要件に基づいて、さまざまなクエリメソッドを使用して複数のディメンションからデータをクエリできます。
並べ替え機能とページング機能を使用して、クエリ条件を満たす行を並べ替えたりページネーションしたりできます。詳細については、並べ替えとページングを参照してください。
折りたたみ(重複排除)機能を使用して、特定の列に基づいて結果セットを折りたたむことができます。このようにして、指定されたタイプのデータはクエリ結果に一度だけ表示されます。詳細については、折りたたみ(重複排除)を参照してください。
データテーブルのデータを分析する場合は、Search オペレーションの集計機能を使用するか、SQL ステートメントを実行できます。たとえば、最小値、最大値、合計、行の総数などを取得できます。詳細については、集計とSQL クエリを参照してください。
行を並べ替えることなく、クエリ条件を満たすすべての行を取得する場合は、ParallelScan オペレーションと ComputeSplits オペレーションを呼び出して並列スキャン機能を使用できます。詳細については、並列スキャンを参照してください。