terms クエリは term クエリに似ています。 terms クエリは複数の用語をサポートします。キーワードの少なくとも 1 つがフィールド値と完全に一致する場合、データ行が返されます。 terms クエリは、SQL ステートメントの IN 演算子と同じ方法で使用できます。
前提条件
OTSClient インスタンスが初期化されていること。詳細については、OTSClient インスタンスの初期化 を参照してください。
データテーブルが作成され、データがデータテーブルに書き込まれていること。詳細については、データテーブルの作成 および データの書き込み を参照してください。
データテーブルの検索インデックスが作成されていること。詳細については、検索インデックスの作成 を参照してください。
パラメーター
パラメーター | 説明 |
TableName | データテーブルの名前。 |
IndexName | 検索インデックスの名前。 |
Query | クエリのタイプ。クエリタイプを TermsQuery に設定します。 |
FieldName | 一致させたいフィールドの名前。 |
Terms | terms クエリを実行するときに、フィールドの値と一致させるために使用するキーワード。 キーワードの少なくとも 1 つがフィールド値と完全に一致する場合、データ行が返されます。 |
Limit | 現在のクエリで返される最大行数。 クエリ条件を満たす行数を特定のデータなしでクエリするには、Limit パラメーターを 0 に設定します。 |
ColumnsToGet | クエリ条件を満たす各行のすべての列を返すかどうかを指定します。このパラメーターには、ReturnAll、Columns、および ReturnAllFromIndex を設定できます。 ReturnAll のデフォルト値は false で、すべての列が返されないことを指定します。次のいずれかの方法を使用して、返される列を指定できます。次の方法を使用して返される列を指定しない場合、主キー列のみが返されます。
ReturnAll を true に設定すると、すべての列が返されます。 |
例
次のサンプルコードは、テーブルの Col_Keyword 列の値が「SearchIndex」または「Sample」キーワードと完全に一致する行をクエリする方法の例を示しています。
/// <summary>
/// Col_Keyword 列の値が「SearchIndex」または「Sample」と完全に一致する行をテーブルで検索します。
/// </summary>
/// <param name="otsClient"></param>
public static void TermsQuery(OTSClient otsClient)
{
TermsQuery termsQuery = new TermsQuery();
termsQuery.FieldName = "Col_Keyword";
termsQuery.Terms = new List<ColumnValue>
{
new ColumnValue("SearchIndex"),
new ColumnValue("Sample")
};
SearchQuery searchQuery = new SearchQuery();
searchQuery.Query = termsQuery;
SearchRequest searchRequest = new SearchRequest(TableName, IndexName, searchQuery);
// ColumnsToGet パラメーターを指定して、指定した列、クエリ条件を満たす行のすべての列、または検索インデックスのすべての列を返すことができます。このパラメーターを指定しない場合、主キー列のみが返されます。
searchRequest.ColumnsToGet = new ColumnsToGet
{
// 検索インデックスのすべての列が返されるように指定します。
ReturnAllFromIndex = true
// 返す列を指定します。
//Columns = new List<string>() { Long_type_col, Text_type_col, Keyword_type_col }
// すべての列が返されるように指定します。
//ReturnAll = true
};
SearchResponse searchResponse = otsClient.Search(searchRequest);
Console.WriteLine(JsonConvert.SerializeObject(searchResponse));
}
FAQ
参考資料
検索インデックスを使用してデータをクエリする場合、次のクエリメソッドを使用できます。 term クエリ、terms クエリ、match all クエリ、match クエリ、match phrase クエリ、prefix クエリ、range クエリ、wildcard クエリ、Boolean クエリ、geo クエリ、nested クエリ、exists クエリ。ビジネス要件に基づいて、さまざまなクエリメソッドを使用して複数のディメンションからデータをクエリできます。
並べ替えおよびページング機能を使用して、クエリ条件を満たす行を並べ替えまたはページングできます。詳細については、並べ替えとページング を参照してください。
折りたたみ(重複排除)機能を使用して、特定の列に基づいて結果セットを折りたたむことができます。このようにして、指定されたタイプのデータはクエリ結果に一度だけ表示されます。詳細については、折りたたみ(重複排除) を参照してください。
データテーブルのデータを分析する場合、Search 操作の集計機能を使用するか、SQL ステートメントを実行できます。たとえば、最小値と最大値、合計、および行の総数を取得できます。詳細については、集計 および SQL クエリ を参照してください。
行を並べ替えることなく、クエリ条件を満たすすべての行を取得する場合、ParallelScan および ComputeSplits 操作を呼び出して並列スキャン機能を使用できます。詳細については、並列スキャン を参照してください。