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

Tablestore:タームクエリ

最終更新日:Dec 28, 2024

タームクエリを使用すると、特定のフィールドの値が指定したキーワードと完全に一致する行をクエリできます。タームクエリは、文字列一致条件に基づくクエリに似ています。 TEXT フィールドを使用してキーワードを照合する場合、行内のトークンの少なくとも 1 つがキーワードと完全に一致すると、その行はクエリ条件を満たします。キーワードはトークン化されません。

前提条件

パラメーター

パラメーター

説明

FieldName

照合するフィールドの名前。

Term

タームクエリを実行するときにフィールドの値と照合するために使用されるキーワード。

この単語はトークン化されません。代わりに、単語全体がフィールド値の照合に使用されます。

フィールドのタイプが TEXT の場合、Tablestore は文字列をトークン化し、トークンを使用してキーワードを照合します。行内のトークンの少なくとも 1 つがキーワードと完全に一致すると、その行はクエリ条件を満たします。たとえば、行の TEXT タイプのフィールドの値が "tablestore is cool" の場合、値は "tablestore"、"is"、"cool" にトークン化できます。フィールドの値と照合するキーワードとして "tablestore"、"is"、または "cool" を指定すると、行はクエリ条件を満たします。

GetTotalCount

クエリ条件を満たす行の総数を返すかどうかを指定します。このパラメーターのデフォルト値は false で、クエリ条件を満たす行の総数は返されません。

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

Query

クエリタイプ。タームクエリを使用するには、このパラメーターを TermQuery に設定します。

TableName

データテーブルの名前。

IndexName

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

ColumnsToGet

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

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

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

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

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

次のサンプルコードは、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;
    // クエリタイプを TermQuery に設定し、照合するフィールドを Keyword_type_col に、キーワードを SearchIndex に設定します。
    searchQuery.Query = new TermQuery("Keyword_type_col", new ColumnValue("SearchIndex"));

    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);
    // NextToken の値を確認します。
}

FAQ

関連情報