Tablestore SDK for Java の完全一致クエリは、多次元インデックス内のすべての行に一致し、一致した行またはその合計数を返します。
前提条件
Tablestore SDK for Java をインストールし、クライアントを初期化します。
機能の説明
完全一致クエリは、フィルターするフィールドや値を指定せずに、多次元インデックス内のすべてのデータに一致します。search を呼び出す際に、クエリタイプを MatchAllQuery に設定し、SearchQuery を使用して、返される行数、合計数の追跡、およびその他の一般的なクエリ動作を構成します。
SearchResponse search(SearchRequest request)
次の例では、多次元インデックス内のすべての行に一致させ、最大 10 行と一致する行の合計数を返します。
String tableName = "example_table";
String indexName = "example_index";
SearchQuery searchQuery = new SearchQuery();
searchQuery.setQuery(new MatchAllQuery());
searchQuery.setLimit(10);
searchQuery.setTrackTotalCount(SearchQuery.TRACK_TOTAL_COUNT);
SearchRequest request = new SearchRequest(tableName, indexName, searchQuery);
SearchRequest.ColumnsToGet columnsToGet = new SearchRequest.ColumnsToGet();
columnsToGet.setReturnAll(true);
request.setColumnsToGet(columnsToGet);
SearchResponse response = client.search(request);
System.out.println(response.getTotalCount());
System.out.println(response.getRows());
MatchAllQuery は、一致するすべての行に同じ関連性スコアを割り当てます。明示的なソート順がない場合、行の順序は保証されません。合計数のみを取得するには、limit を 0 に設定します。これにより、サーバーは行を返さなくなります。合計数を追跡すると、クエリのオーバーヘッドが増加します。
パラメーター
検索リクエスト
request は、次のパラメーターを含む SearchRequest オブジェクトです。
|
名前 |
タイプ |
説明 |
|
tableName (必須) |
String |
テーブルの名前。 |
|
indexName (必須) |
String |
検索インデックスの名前 |
|
searchQuery (必須) |
SearchQuery |
クエリ条件と一般的なクエリ設定。 |
|
columnsToGet (任意) |
SearchRequest.ColumnsToGet |
返される列の設定。このパラメーターを省略した場合、プライマリキー列のみが返されます。 |
|
timeoutInMillisecond (任意) |
int |
リクエストレベルのクエリタイムアウト (ミリ秒単位)。デフォルト値は |
|
routingValues (任意) |
|
カスタムルーティングフィールドのプライマリキー値。インデックスがカスタムルーティングを使用しない場合は、このパラメーターを省略します。 |
クエリ設定
request.searchQuery は、次のパラメーターを含む SearchQuery オブジェクトです。
|
名前 |
タイプ |
説明 |
|
query (必須) |
Query |
クエリ条件。完全一致クエリの場合は、このパラメーターを |
|
offset (任意) |
Integer |
クエリの開始位置。 |
|
limit (任意) |
Integer |
返す行の最大数。行を返さないようにするには、このパラメーターを |
|
collapse (任意) |
Collapse |
フィールドの折りたたみ設定。指定されたフィールドで結果を重複排除します。構成の詳細については、「クエリ結果の折りたたみ」をご参照ください。 |
|
sort (任意) |
Sort |
結果のソート順。構成の詳細については、「結果のソートとページ分割」をご参照ください。 |
|
trackTotalCount (任意) |
int |
カウントする一致行の予想最大数。デフォルト値は |
|
filter (任意) |
SearchFilter |
|
|
aggregationList (任意) |
|
集約設定。構成の詳細については、「集約」をご参照ください。 |
|
groupByList (任意) |
|
グループ化設定。構成の詳細については、「集約」をご参照ください。 |
|
token (任意) |
byte[] |
ページネーショントークン。前の応答の |
クエリ条件
request.searchQuery.query は MatchAllQuery オブジェクトであり、追加のパラメーターはありません。このクエリタイプは、まとめとハイライトをサポートしていません。サポートされているクエリタイプと構成の詳細については、「まとめとハイライト」をご参照ください。
返される列
request.columnsToGet は、次のパラメーターを含む SearchRequest.ColumnsToGet オブジェクトです。
|
名前 |
タイプ |
説明 |
|
columns (任意) |
|
返す属性列。このパラメーターは、 |
|
returnAll (任意) |
boolean |
テーブル内のすべての属性列を返すかどうかを指定します。デフォルト値: |
|
returnAllFromIndex (任意) |
boolean |
インデックス付きのすべての属性列を返すかどうかを指定します。デフォルト値: |
戻り値
search は SearchResponse オブジェクトを返します。次の表に、コアフィールドを示します。
|
名前 |
タイプ |
説明 |
|
totalCount |
long |
一致する行の数。 |
|
rows |
|
このクエリによって返される行。 |
|
nextToken |
byte[] |
次のページのトークン。 |
|
isAllSuccess |
boolean |
すべてのインデックスパーティションが正常にクエリされたかどうかを示します。 |