完全一致検索を使用すると、特定のフィールドがキーワードと完全に一致する行を検索できます。このキーワードはトークン化されません。TEXT フィールドの場合、Tablestore はフィールド値をトークン化し、各トークンに対してキーワードの完全一致を確認します。いずれかのトークンがキーワードと一致すれば、その行は検索結果に含まれます。
前提条件
-
OTSClient インスタンスが初期化されていること。詳細については、「OTSClient インスタンスの初期化」をご参照ください。
-
データテーブルが作成され、データが書き込まれていること。詳細については、「データテーブルの作成」および「データの書き込み」をご参照ください。
-
データテーブルの検索インデックスが作成されました。詳細については、「検索インデックスを作成する」をご参照ください。
パラメーター
|
パラメーター |
説明 |
|
FieldName |
一致させるフィールドの名前です。 |
|
Term |
フィールド値と照合するキーワードです。このキーワードはトークン化されず、そのままフィールド全体の値または TEXT フィールドの各トークンに対して照合されます。 TEXT フィールドの場合、Tablestore はフィールド値をトークン化し、いずれかのトークンがキーワードと完全に一致するかどうかを確認します。たとえば、TEXT フィールドに "tablestore is cool" という値が含まれる場合、この値は "tablestore"、"is"、"cool" の 3 つのトークンに分割されます。これらのいずれかをキーワードとして指定すると、該当する行が返されます。 |
|
GetTotalCount |
一致する行の総数を返すかどうかを指定します。デフォルトは |
|
Query |
クエリのタイプです。完全一致検索を行う場合は |
|
TableName |
データテーブルの名前です。 |
|
IndexName |
検索インデックスの名前。 |
|
ColumnsToGet |
一致した行に対して返すカラムを指定します。 デフォルトでは、
|
例
次の例では、Keyword_type_col フィールドが SearchIndex と完全に一致する行を検索します。
/// <summary>
/// Keyword_type_col が "SearchIndex" と完全に一致する行を検索します。
/// </summary>
/// <param name="otsClient"></param>
public static void TermQuery(OTSClient otsClient)
{
var searchQuery = new SearchQuery();
// 一致する行の総数を返します。
searchQuery.GetTotalCount = true;
// Keyword_type_col が "SearchIndex" と等しい行を一致させます。
searchQuery.Query = new TermQuery("Keyword_type_col", new ColumnValue("SearchIndex"));
var request = new SearchRequest(TableName, IndexName, searchQuery);
// 多次元インデックス内のすべてのカラムを返します。
// 特定のカラムを返す場合: Columns = new List<string>() { Long_type_col, Text_type_col, Keyword_type_col }
// データテーブル内のすべてのカラムを返す場合: ReturnAll = true
request.ColumnsToGet = new ColumnsToGet()
{
ReturnAllFromIndex = true
};
var response = otsClient.Search(request);
// ページングされた結果については NextToken を確認します。
}
よくある質問
参照
多次元インデックスを使用してデータをクエリする際は、以下のクエリ方法を利用できます:完全一致検索、複数値完全一致検索、完全一致検索、一致検索、フレーズ一致検索、プレフィックス検索、範囲クエリ、ワイルドカード検索、ブール値クエリ、ジオクエリ、ネストされたクエリ、および 存在クエリ。ビジネス要件に応じて、さまざまなクエリ方法を組み合わせて多角的にデータを検索できます。
ソートおよびページング機能を使用して、クエリ条件を満たす行をソートまたはページングできます。詳細については、「ソートとページング」をご参照ください。
折りたたみ(distinct)機能を使用すると、特定のカラムに基づいて結果セットを折りたたむことができます。これにより、指定されたタイプのデータがクエリ結果内に 1 回だけ表示されるようになります。詳細については、「折りたたみ(distinct)」をご参照ください。
データテーブル内のデータを分析したい場合は、Search 操作の集約機能または SQL ステートメントを実行できます。たとえば、最小値、最大値、合計値、行数などを取得できます。詳細については、「集約」および「SQL クエリ」をご参照ください。
クエリ条件を満たすすべての行を取得する必要があり、かつ行のソートが不要な場合は、ParallelScan 操作および ComputeSplits 操作を呼び出して並列スキャン機能を使用できます。詳細については、「並列スキャン」をご参照ください。