すべて一致クエリを使用して、テーブル内のすべての行を照合し、テーブル内の総行数をクエリして、複数のランダムな行を返すことができます。
前提条件
OTSClient インスタンスが初期化されていること。詳細については、OTSClient インスタンスを初期化するをご参照ください。
データテーブルが作成され、データがデータテーブルに書き込まれていること。詳細については、データテーブルを作成するおよびデータを書き込むをご参照ください。
データテーブルの検索インデックスが作成されていること。詳細については、検索インデックスを作成するをご参照ください。
パラメータ
パラメータ | 説明 |
query | クエリのタイプ。query パラメータを MatchAllQuery に設定します。 |
table_name | データテーブルの名前。 |
index_name | 検索インデックスの名前。 |
limit | 現在のクエリで返される最大行数。 特定のデータを返さずに、クエリ条件を満たす行数のみをクエリするには、limit を 0 に設定します。この方法では、Tablestore はテーブルからの特定のデータなしで、クエリ条件を満たす行数を返します。 |
get_total_count | クエリ条件を満たす行の総数を返すかどうかを指定します。デフォルト値:false。false の値は、クエリ条件を満たす行の総数が返されないことを指定します。 このパラメータを true に設定すると、クエリのパフォーマンスが低下します。 |
columns_to_get | クエリ条件を満たす各行のすべての列を返すかどうかを指定します。
|
例
次のサンプルコードは、テーブルの総行数をクエリする方法の例を示しています。
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))