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

Tablestore:プレフィックスクエリを実行する

最終更新日:Dec 28, 2024

プレフィックスクエリを実行して、指定したプレフィックスと一致するプレフィックスを持つデータをクエリできます。クエリ条件の照合に使用される列の型が TEXT の場合、列の値はトークン化されます。指定された列のトークン化された値に、指定されたプレフィックスを含む用語が少なくとも 1 つ含まれている場合、行はクエリ条件を満たします。

前提条件

パラメータ

パラメータ

説明

FieldName

クエリする列の名前。

Prefix

プレフィックスクエリを実行するときに、列の値と照合するために使用されるプレフィックス。

クエリ条件の照合に使用される列の型が TEXT の場合、列の値はトークン化されます。指定された列のトークン化された値に、指定されたプレフィックスを含む用語が少なくとも 1 つ含まれている場合、行はクエリ条件を満たします。

GetTotalCount

クエリ条件を満たす行の総数を返すかどうかを指定します。デフォルト値: false。これは、クエリ条件を満たす行の総数が返されないことを示します。

このパラメータを true に設定すると、クエリのパフォーマンスが低下します。

Query

クエリのタイプ。このパラメータを PrefixQuery に設定します。

TableName

データテーブルの名前。

IndexName

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

ColumnsToGet

クエリ条件を満たす行のすべての列を返すかどうかを指定します。ReturnAll、Columns、および ReturnAllFromIndex パラメータを指定できます。

ReturnAll のデフォルト値は false です。これは、すべての列が返されるわけではないことを指定します。次のいずれかの方法を使用して、返したい列を指定できます。次の方法を使用して返したい列を指定しない場合、主キー列のみが返されます。

  • Columns を設定して、返したい列を指定します。

  • ReturnAllFromIndex を true に設定して、検索インデックスからすべての列を返します。

ReturnAll を true に設定すると、すべての列が返されます。

次のサンプルコードは、テーブル内の Keyword_type_col 列の値に "Search" プレフィックスが含まれる行をクエリする方法を示しています。

/// <summary>
/// テーブル内の Keyword_type_col 列の値に "Search" プレフィックスが含まれる行をクエリします。
/// </summary>
/// <param name="otsClient"></param>
public static void PrefixQuery(OTSClient otsClient)
{
    var searchQuery = new SearchQuery();
    // クエリタイプを PrefixQuery に、一致させる列を Keyword_type_col に、プレフィックスを "Search" に設定します。
    searchQuery.Query = new PrefixQuery("Keyword_type_col", "Search");
    // クエリ条件を満たす行の総数を返します。
    searchQuery.GetTotalCount = true;
    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 オペレーションを呼び出して並列スキャン機能を使用できます。詳細については、並列スキャンを参照してください。