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

Tablestore:Terms query

最終更新日:Jul 26, 2026

Tablestore SDK for Java を使用した複数値完全一致検索は、フィールド値またはトークンが、指定された複数のクエリ用語のいずれかと完全に一致する場合に、その行または合計数を返します。

前提条件

Tablestore SDK for Java をインストールし、クライアントを初期化します。

機能説明

複数値完全一致検索は、指定されたフィールドを複数のクエリ term と照合し、いずれかの term が完全一致条件を満たす場合に行を返します。 KeywordLong フィールドなどの非テキストフィールドの場合、フィールド値全体がクエリ term のいずれかと完全に一致する必要があります。 この OR の組み合わせは、SQL の IN 条件に似ています。 Text フィールド (文字列型をご参照ください) では、アナライザによって生成されたトークンのいずれかがクエリ term のいずれかと完全に一致する場合に、行が一致します。 クエリ term 自体はトークン化されません。

説明

Text フィールドに対して生成されるトークンは、アナライザの構成、アルゴリズムの更新、および言語の使用状況によって変更される場合があります。Text フィールドの元の文字列全体に一致させるために、複数値完全一致検索を使用しないでください。代わりに、仮想カラムを使用してソースフィールドを Keyword 型にマップし、仮想カラムをクエリしてください。

search を呼び出すには、クエリタイプを TermsQuery に設定し、SearchQuery を使用して、返される行数、合計数の追跡、およびその他の一般的なクエリの動作を設定します。

SearchResponse search(SearchRequest request)

次の例では、category フィールドの値が books または games と完全に一致する行をクエリし、最大 10 行と、一致する行の総数を返します。

String tableName = "example_table";
String indexName = "example_index";

TermsQuery termsQuery = new TermsQuery();
termsQuery.setFieldName("category");
termsQuery.addTerm(ColumnValue.fromString("books"));
termsQuery.addTerm(ColumnValue.fromString("games"));

SearchQuery searchQuery = new SearchQuery();
searchQuery.setQuery(termsQuery);
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());

パラメーター

検索リクエスト

request は、次のパラメーターを含む SearchRequest オブジェクトです。

名前

説明

tableName (必須)

String

テーブルの名前。

indexName (必須)

String

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

searchQuery (必須)

SearchQuery

クエリ条件と共通のクエリ設定。

columnsToGet (任意)

SearchRequest.ColumnsToGet

返される列の設定。このパラメーターを省略した場合、プライマリキー列のみが返されます。

timeoutInMillisecond (任意)

int

リクエストレベルのクエリタイムアウト (ミリ秒単位) です。デフォルト値は -1 で、この場合、個別のクエリタイムアウトは設定されません。

routingValues (任意)

List<PrimaryKey>

カスタムルートフィールドのプライマリキー値。インデックスがカスタムルーティングを使用しない場合は、このパラメーターを省略します。

クエリ設定

request.searchQuery は、以下のパラメーターを含む SearchQuery オブジェクトです。

名前

説明

query (必須)

Query

クエリ条件。複数値完全一致検索の場合は、このパラメーターを TermsQuery に設定します。

offset (任意)

Integer

クエリの開始位置。

limit (任意)

Integer

返される行の最大数です。このパラメーターを 0 に設定すると、行は返されません。

highlight (任意)

Highlight

Text フィールドのまとめとハイライトの設定。構成の詳細については、「まとめとハイライト」をご参照ください。

collapse (任意)

Collapse

指定されたフィールドで結果を重複排除する、フィールドの折りたたみ設定。構成の詳細については、「クエリ結果の折りたたみ」をご参照ください。

sort (任意)

Sort

結果のソート順。構成の詳細については、「結果のソートとページ分割」をご参照ください。

trackTotalCount (任意)

int

カウントする一致する行の最大数です。デフォルト値は TRACK_TOTAL_COUNT_DISABLED で、カウントが無効になります。すべての一致する行をカウントするには、このパラメーターを TRACK_TOTAL_COUNT に設定します。値を小さくすると、クエリのパフォーマンスが向上します。

filter (任意)

SearchFilter

query の結果に適用されるフィルターです。

aggregationList (任意)

List<Aggregation>

集約設定。構成の詳細については、「集約」をご参照ください。

groupByList (任意)

List<GroupBy>

グループ化設定。構成の詳細については、「集約」をご参照ください。

token (任意)

byte[]

ページネーショントークンです。行の読み取りを続行するには、このパラメーターに前の応答の nextToken の値を設定します。token を設定すると、トークンにはソート条件がすでに含まれているため、SDK は sort をクリアします。

クエリ条件

request.searchQuery.query は、以下のパラメーターを含む TermsQuery オブジェクトです。

名前

説明

fieldName (必須)

String

クエリ対象のインデックスフィールドの名前。

terms (必須)

List<ColumnValue>

クエリ用語。最大 1,024 個の値を指定できます。いずれかの用語が完全一致条件を満たす場合、行は一致と見なされます。Text フィールドの場合、各値は完全な用語として使用され、トークン化されません。

weight (任意)

float

クエリ条件の関連性の重みです。値は正の浮動小数点数である必要があります。値が大きいほど、クエリ条件が BM25 関連性スコアに与える貢献度が大きくなります。このパラメーターは、マッチングや返される行数には影響しません。ScoreSort を使用して関連性スコアでソートする場合にのみ、結果の順序に影響します。デフォルト値: 1.0

返される列

request.columnsToGetSearchRequest.ColumnsToGet オブジェクトであり、次のパラメーターが含まれます。

名前

説明

columns (任意)

List<String>

返す属性列。 このパラメーターは、 returnAllreturnAllFromIndex が両方とも false の場合にのみ設定します。 このパラメーターを省略した場合、プライマリキー列のみが返されます。

returnAll (任意)

boolean

テーブル内のすべての属性列を返すかどうかを指定します。デフォルト値は false です。

returnAllFromIndex (任意)

boolean

すべてのインデックス化された属性列を返すかどうかを指定します。デフォルト値: false。このパラメーターと returnAll は、両方を true にすることはできません。

戻り値

searchSearchResponse オブジェクトを返します。次の表では、コアフィールドについて説明します。

名前

説明

totalCount

long

一致する行の数です。getTotalCount() を呼び出して値を取得します。返される値は trackTotalCount 設定によって異なります。

rows

List<Row>

このクエリによって返される行。値を取得するには、getRows() を呼び出します。行数は limit を超えません。

searchHits

List<SearchHit>

クエリヒットです。getSearchHits()を呼び出して値を取得します。highlightが設定されている場合、このフィールドには行データ、まとめ、およびハイライト結果が含まれます。

nextToken

byte[]

次のページのトークンです。getNextToken() を呼び出して値を取得します。値が null でない場合は、次のリクエストでこの値を token として設定し、行の読み取りを続行します。

isAllSuccess

boolean

すべてのインデックスパーティションが正常にクエリされたかどうかを示します。 isAllSuccess() を呼び出して値を取得します。 値が false の場合、応答には部分的な結果が含まれ、totalCount は実際の一致する行数よりも少なくなる可能性があります。