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

Tablestore:Exists クエリ

最終更新日:May 01, 2026

Exists クエリは、NULL クエリまたは NULL 値クエリとも呼ばれます。このクエリはスパースデータにおいて、ある行の特定の列が存在するかどうかを判定するために使用されます。たとえば、address 列の値が空でない行をクエリできます。

説明
  • Nested 列に対して Exists クエリを実行する場合は、ネストされたクエリを使用します。

  • 列に空の値が含まれているかどうかを確認するには、ExistsQuery を BoolQuery の mustNotQueries と組み合わせて使用する必要があります。

  • 以下のいずれかの条件を満たす場合、システムはその列が存在しないと判断します。ここでは city 列を例として説明します。

    • 検索インデックス内の city 列の型は、キーワードなどの基本型です。データテーブルに city 列が存在しない行がある場合、検索インデックスはその行の city 列が存在しないとみなします。

    • 多次元インデックスにおける city 列の型が keyword などの基本型であり、データテーブル内の行で city 列の値が空の配列("city" = "[]")である場合、多次元インデックスは city 列が存在しないと判断します。

前提条件

パラメーター

パラメーター

説明

TableName

データテーブルの名前。

IndexName

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

Query

クエリの種類。existsQuery に設定します。

GetTotalCount

クエリ条件に一致する行の総数を返すかどうか。デフォルト値は false です。true に設定すると、クエリパフォーマンスが低下します。

FieldName

クエリ対象のフィールド名。

ColumnsToGet

一致した各行のすべての列を返すかどうか。サポートされる値は、ReturnAllColumns、および ReturnAllFromIndex です。

デフォルトでは、ReturnAllfalse となっており、プライマリキー列のみが返されます。追加の列を返すには、以下のいずれかのオプションを使用します。

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

  • ReturnAllFromIndextrue に設定して、多次元インデックス内のすべての列を返します。

ReturnAlltrue に設定すると、データテーブル内のすべての列が返されます。

使用例

次の例では、pk0 列が空でない行をクエリします。

/// <summary>
/// pk0 列の値が空でない行をクエリするために Exists クエリを実行します。
/// </summary>
/// <param name="otsClient"></param>
public static void ExistsQuery(OTSClient otsClient)
{
    ExistsQuery existsQuery = new ExistsQuery
    {
        FieldName = "pk0"
    };

    SearchQuery searchQuery = new SearchQuery
    {
        Query = existsQuery,
        GetTotalCount = false
    };

    SearchRequest searchRequest = new SearchRequest(TableName, IndexName, searchQuery);
    SearchResponse searchResponse = otsClient.Search(searchRequest);

    Console.WriteLine(JsonConvert.SerializeObject(searchResponse));
}

よくある質問

参照

  • 多次元インデックスを使用してデータをクエリする際は、以下のクエリ方法を利用できます:完全一致検索複数値完全一致検索完全一致検索一致検索フレーズ一致検索プレフィックス検索範囲クエリワイルドカード検索ブール値クエリジオクエリネストされたクエリ、および Exists クエリ。ビジネス要件に応じて、さまざまなクエリ方法を組み合わせて多角的にデータをクエリできます。

    ソートおよびページング機能を使用して、クエリ条件に一致する行をソートまたはページングできます。詳細については、「ソートとページング」をご参照ください。

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

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

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