Exists クエリは、NULL クエリまたは NULL 値クエリとも呼ばれます。このクエリは、スパースデータで使用され、行の列が存在するかどうかを判断します。たとえば、住所列の値が空でない行をクエリできます。
Nested 列に対して Exists クエリを実行する場合は、ネストクエリを使用できます。
列に空の値が含まれているかどうかを確認するには、ExistsQuery を BoolQuery の mustNotQueries と共に使用する必要があります。
次のいずれかの条件が満たされている場合、システムは列が存在しないと見なします。この例では、city 列が使用されています。
検索インデックス内の city 列のタイプが、keyword などの基本タイプである場合。データテーブルに city 列が存在しない行がある場合、検索インデックスは city 列が存在しないと見なします。
検索インデックス内の city 列のタイプが、keyword などの基本タイプである場合。データテーブル内の city 列の値が空の配列である行("city" = "[]")がある場合、検索インデックスは city 列が存在しないと見なします。
API 操作
Search または ParallelScan 操作を呼び出し、クエリタイプを ExistsQuery に設定して、Exists クエリを実行できます。
パラメーター
パラメーター | 説明 |
fieldName | クエリ対象の列の名前。 |
query | クエリタイプ。このパラメーターを ExistsQuery に設定します。 |
getTotalCount | クエリ条件を満たす行の総数を返すかどうかを指定します。このパラメーターのデフォルト値は false で、クエリ条件を満たす行の総数は返されません。 このパラメーターを true に設定すると、クエリのパフォーマンスが低下します。 |
tableName | データテーブルの名前。 |
indexName | 検索インデックスの名前。 |
columnsToGet | クエリ条件を満たす各行のすべての列を返すかどうかを指定します。このパラメーターには、returnAll フィールドと columns フィールドを設定できます。 returnAll フィールドのデフォルト値は false で、すべての列が返されるわけではないことを指定します。この場合、columns フィールドを使用して、返す列を指定できます。返す列を指定しない場合は、プライマリキー列のみが返されます。 returnAll フィールドを true に設定すると、すべての列が返されます。 |
メソッド
Tablestore コンソールで、または Tablestore CLI または Tablestore SDK を使用して、Exists クエリを実行できます。Exists クエリを実行する前に、次の準備が完了していることを確認してください。
Tablestore で操作を実行するための権限を持つ Alibaba Cloud アカウントまたは RAM ユーザーを持っていること。RAM ユーザーに Tablestore 操作権限を付与する方法については、RAM ポリシーを使用して RAM ユーザーに権限を付与する を参照してください。
Tablestore SDK または Tablestore CLI を使用してクエリを実行する場合は、Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ペアが作成されます。詳細については、AccessKey ペアを作成する を参照してください。
データテーブルが作成されていること。詳細については、テーブルの操作 を参照してください。
データテーブルの検索インデックスが作成されていること。詳細については、検索インデックスを作成する を参照してください。
Tablestore SDK を使用してクエリを実行する場合は、OTSClient インスタンスが初期化されていること。詳細については、OTSClient インスタンスを初期化する を参照してください。
Tablestore CLI を使用してクエリを実行する場合は、Tablestore CLI がダウンロードされて起動され、アクセスするインスタンスとデータテーブルに関する情報が設定されていること。詳細については、Tablestore CLI をダウンロードする、Tablestore CLI を起動し、アクセス情報を設定する、および データテーブルの操作 を参照してください。
課金ルール
検索インデックスを使用してデータをクエリする場合、消費された読み取りスループットに対して課金されます。詳細については、検索インデックスの課金対象項目 を参照してください。
FAQ
参考資料
検索インデックスを使用してデータをクエリする場合、次のクエリメソッドを使用できます。タームクエリ、タームズクエリ、マッチオールクエリ、マッチクエリ、マッチフレーズクエリ、プレフィックスクエリ、範囲クエリ、ワイルドカードクエリ、あいまいクエリ、ブールクエリ、ジオクエリ、ネストクエリ、KNNベクトル検索、Exists クエリ。ビジネス要件に基づいてクエリメソッドを選択し、複数のディメンションからデータをクエリできます。
並べ替え機能とページング機能を使用して、クエリ条件を満たす行を並べ替えたりページ分割したりできます。詳細については、並べ替えとページングを実行する を参照してください。
折りたたみ(重複排除)機能を使用して、特定の列に基づいて結果セットを折りたたむことができます。これにより、指定されたタイプのデータはクエリ結果に一度だけ表示されます。詳細については、折りたたみ(重複排除) を参照してください。
データテーブル内のデータを分析する場合は、Search 操作の集計機能を使用するか、SQL ステートメントを実行できます。たとえば、最小値、最大値、合計、行の総数などを取得できます。詳細については、集計 および SQL クエリ を参照してください。
行を並べ替えることなく、クエリ条件を満たすすべての行を取得する場合は、ParallelScan 操作と ComputeSplits 操作を呼び出して並列スキャン機能を使用できます。詳細については、並列スキャン を参照してください。