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

Tablestore:すべて一致クエリ

最終更新日:Dec 28, 2024

すべて一致クエリを使用して、テーブル内のすべての行を照合し、テーブル内の総行数をクエリして、複数のランダムな行を返すことができます。

前提条件

パラメータ

パラメータ

説明

query

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

table_name

データテーブルの名前。

index_name

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

limit

現在のクエリで返される最大行数。

特定のデータを返さずに、クエリ条件を満たす行数のみをクエリするには、limit を 0 に設定します。この方法では、Tablestore はテーブルからの特定のデータなしで、クエリ条件を満たす行数を返します。

get_total_count

クエリ条件を満たす行の総数を返すかどうかを指定します。デフォルト値:false。false の値は、クエリ条件を満たす行の総数が返されないことを指定します。

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

columns_to_get

クエリ条件を満たす各行のすべての列を返すかどうかを指定します。

  • return_type を ColumnReturnType.SPECIFIED に設定すると、column_names を使用して返す列を指定できます。

  • return_type を ColumnReturnType.ALL に設定すると、すべての列が返されます。

  • return_type を ColumnReturnType.NONE に設定すると、プライマリキー列のみが返されます。

次のサンプルコードは、テーブルの総行数をクエリする方法の例を示しています。

  • Python SDK for Tablestore V5.2.1 以降

    デフォルトでは、Python SDK for Tablestore V5.2.1 以降を使用してすべて一致クエリを実行すると、SearchResponse オブジェクトが返されます。次のコードは、サンプルリクエストを示しています。

    query=MatchAllQuery()
    all_rows=[]
    next_token=None
    first_page=True
    
    while first_page or next_token:
        search_response=client.search(table_name, index_name,
            SearchQuery(query,next_token=next_token,limit=100,get_total_count=True),
            columns_to_get=ColumnsToGet(['k','t','g','ka','la'],ColumnReturnType.SPECIFIED))
        all_rows.extend(search_response.rows)
        first_page=False
    for row in all_rows:
        print(row)
    
    print('Totalrows:', len(all_rows))
    

    次のサンプルリクエストを使用して、Tuple タイプの結果を返すことができます。

    query=MatchAllQuery()
    all_rows=[]
    next_token=None
    first_page=True
    
    while first_page or next_token:
        rows, next_token, total_count, is_all_succeed, agg_results, group_by_results =client.search(table_name, index_name,
            SearchQuery(query,next_token=next_token,limit=100,get_total_count=True),
            columns_to_get=ColumnsToGet(['k','t','g','ka','la'],ColumnReturnType.SPECIFIED)).v1_response()
        all_rows.extend(rows)
        first_page=False
    for row in all_rows:
        print(row)
    
    print('Totalrows:', len(all_rows))
    
  • Python SDK for Tablestore V5.2.1 より前のバージョン

    V5.2.1 より前のバージョンの Python SDK for Tablestore を使用してすべて一致クエリを実行すると、デフォルトで TUPLE タイプの結果が返されます。次のサンプルコードは、サンプルリクエストを示しています。

    query=MatchAllQuery()
    all_rows=[]
    next_token=None
    first_page=True
    while first_page or next_token:
        rows, next_token, total_count, is_all_succeed = client.search(table_name, index_name,
            SearchQuery(query, next_token=next_token, limit=100, get_total_count=True),
            columns_to_get=ColumnsToGet(['k', 't', 'g', 'ka', 'la'], ColumnReturnType.SPECIFIED))
        all_rows.extend(rows)
        first_page=False
    for row in all_rows:
        print(row)
    
    print('Total rows:', len(all_rows))