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

Tablestore:Match all query

最終更新日:Dec 28, 2024

テーブル内のすべての行を照合して、テーブルの合計行数を照会したり、複数のランダムな行を返したりするには、Match all queryを使用できます。

API操作

SearchまたはParallelScan操作を呼び出し、クエリタイプをMatchAllQueryに設定して、Match all queryを実行できます。

パラメーター

パラメーター

説明

query

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

tableName

データテーブルの名前。

indexName

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

limit

現在のクエリで返す最大行数。

現在のクエリで複数のランダムなデータ行を返す場合は、limitパラメーターを正の整数に設定します。

クエリ条件を満たす行数を特定のデータなしで照会するには、limitパラメーターを0に設定します。

columnsToGet

クエリ条件を満たす各行のすべての列を返すかどうかを指定します。columnsToGetパラメーターには、returnAllフィールドとcolumnsフィールドを指定できます。

returnAllフィールドのデフォルト値はfalseで、すべての列が返されないことを指定します。この場合、columnsフィールドを使用して、返す列を指定できます。返す列を指定しない場合は、プライマリキー列のみが返されます。

returnAllフィールドをtrueに設定すると、すべての列が返されます。

getTotalCount

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

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

メソッド

Tablestore CLIまたはTablestore SDKを使用して、Match all queryを実行できます。Match all queryを実行する前に、以下の準備が完了していることを確認してください。

Tablestore CLIを使用する

searchコマンドを使用して、検索インデックスを使用してデータを照会できます。詳細については、検索インデックスを参照してください。

  1. searchコマンドを実行して、search_index検索インデックスを使用してデータを照会し、クエリ条件を満たす各行のすべてのインデックス付き列を返します。

    search -n search_index --return_all_indexed
  2. プロンプトが表示されたら、クエリ条件を入力します。

    {
        "Offset": -1,
        "Limit": 10,
        "Collapse": null,
        "Sort": null,
        "GetTotalCount": true,
        "Token": null,
        "Query": {
            "Name": "MatchAllQuery",
            "Query": {
            }
        }
    }

Tablestore SDKを使用する

次のTablestore SDKを使用して、Match all queryを実行できます。Tablestore SDK for JavaTablestore SDK for GoTablestore SDK for PythonTablestore SDK for Node.jsTablestore SDK for .NET、およびTablestore SDK for PHP。この例では、Tablestore SDK for Javaを使用します。

次のサンプルコードは、テーブルの合計行数を照会する方法の例を示しています。

/**
 * Match all query機能を使用して、テーブルの合計行数を照会します。
 * @param client
 */
private static void matchAllQuery(SyncClient client) {
    SearchQuery searchQuery = new SearchQuery();

    /**
    * クエリタイプをMatchAllQueryに設定します。
    */
    searchQuery.setQuery(new MatchAllQuery()); 

    /**
     * MatchAllQueryベースのクエリ結果では、TotalCountの値はテーブルの合計行数です。
     * 現在のクエリで複数のランダムなデータ行を返す場合は、limitパラメーターを正の整数に設定します。
     * 行の特定のデータを照会せずに、クエリ条件を満たす行数のみを照会するには、limitパラメーターを0に設定します。
     */
    searchQuery.setLimit(0);
    SearchRequest searchRequest = new SearchRequest("<TABLE_NAME>", "<SEARCH_INDEX_NAME>", searchQuery);

    /**
    * クエリ条件を満たす行の総数を返すように指定します。
    */ 
    searchQuery.setGetTotalCount(true);
    SearchResponse resp = client.search(searchRequest);
    /**
     * 返されたクエリ条件を満たす行の総数が正しいかどうかを確認します。isAllSuccessがfalseの場合、Tablestoreはすべてのサーバーでデータを照会できず、クエリ条件を満たす行の総数よりも小さい値を返す可能性があります。
     */
    if (!resp.isAllSuccess()) {
        System.out.println("NotAllSuccess!");
    }
    System.out.println("IsAllSuccess: " + resp.isAllSuccess());
    System.out.println("TotalCount: " + resp.getTotalCount()); // クエリ条件を満たす行の総数を表示します。
    System.out.println(resp.getRequestId());
}
            

課金ルール

検索インデックスを使用してデータを照会する場合、消費された読み取りスループットに対して課金されます。詳細については、検索インデックスの課金対象項目を参照してください。

FAQ

テーブルの合計行数を照会するにはどうすればよいですか?

参考資料