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

Tablestore:ワイルドカードクエリの実行

最終更新日:Sep 30, 2026

ワイルドカードクエリを実行する場合、クエリでアスタリスク (*) と疑問符 (?) のワイルドカード文字を使用してデータを検索できます。アスタリスク (*) は、検索語の位置に関係なく、任意の長さの文字列に一致します。疑問符 (?) は、指定した位置の 1 文字に一致します。一致対象の文字列は、アスタリスク (*) または疑問符 (?) で開始できます。たとえば、「table*e」という文字列を検索すると、「tablestore」が一致します。

クエリパターンが *word* (SQL の WHERE field_a LIKE '%word%' と同等) の場合は、パフォーマンス向上のためにトークンベースのワイルドカードクエリ機能を使用できます。データサイズが増加しても、パフォーマンスは低下しません。

説明

NOT LIKE 演算子を使用する場合は、BoolQuery の mustNotQueries と併用して WildcardQuery を使用する必要があります。

前提条件

パラメータ

パラメータ

説明

Query

クエリのタイプ。WildcardQuery に設定します。

FieldName

クエリ対象の列名。

Value

ワイルドカード文字を含む文字列。文字列の長さは 32 文字を超えることはできません。

TableName

データテーブルの名前。

IndexName

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

GetTotalCount

クエリ条件を満たす行の総数を返すかどうかを指定します。デフォルト値:false。

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

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 WildcardQuery(OTSClient otsClient)
{
    var searchQuery = new SearchQuery();
    // クエリタイプを WildcardQuery に設定し、1 つ以上のワイルドカード文字を含む文字列を指定してワイルドカードクエリを実行します。
    searchQuery.Query = new WildcardQuery(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); // 返された行数ではなく、クエリ条件を満たす行の総数を表示します。
}

よくある質問

関連ドキュメント

  • 検索インデックスを使用してデータをクエリする場合は、次のクエリ方法を使用できます:term クエリ、terms クエリ、match all クエリ、match クエリ、match phrase クエリ、prefix クエリ、range クエリ、ワイルドカードクエリ、ブールクエリ、geo クエリ、nested クエリ、exists クエリ。ビジネス要件に基づき、さまざまなクエリ方法を使用して複数のディメンションからデータをクエリできます。

    並べ替え機能とページ分割機能を使用して、クエリ条件を満たす行を並べ替えまたはページ分割できます。詳細については、「並べ替えとページ分割」をご参照ください。

    折りたたみ (distinct) 機能を使用すると、指定した列に基づいて結果セットを折りたたむことができます。これにより、指定したタイプのデータがクエリ結果に 1 回だけ表示されるようになります。詳細については、「折りたたみ (distinct)」をご参照ください。

  • データテーブル内のデータを分析するには、Search 操作の集計機能を使用するか、SQL 文を実行することができます。たとえば、最小値と最大値、合計、総行数を取得できます。詳細については、「集計」および「SQL クエリ」をご参照ください。

  • 行をソートする必要なく、クエリ条件を満たすすべての行を取得したい場合は、ParallelScan および ComputeSplits 操作を呼び出して並列スキャン機能を使用できます。 詳細については、「並列スキャン」をご参照ください。