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

Tablestore:サフィックスクエリ

最終更新日:Jul 26, 2026

Tablestore SDK for Java のサフィックスクエリは、指定した文字列で終わる完全な FuzzyKeyword フィールド値に一致し、一致する行またはその総数を返します。

前提条件

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

説明

サフィックスクエリには、Tablestore SDK for Java 5.17.0 以降が必要です。

機能説明

サフィックスクエリは、指定した文字列で終わる完全なフィールド値に一致します。サフィックスクエリは FuzzyKeyword フィールドのみをサポートします。このフィールドタイプの詳細については、「文字列タイプ」をご参照ください。マッチングは大文字と小文字を区別します。たとえば、フィールド値 order-H001 はサフィックス H001 に一致しますが、h001 には一致しません。

説明

FuzzyKeyword フィールドは、ソートまたは集約をサポートしていません。同じクエリでソートまたは集約が必要な場合は、必要な操作をサポートする別のフィールドを使用してください。

Keyword フィールドは SuffixQuery をサポートしていません。同等のサフィックスマッチングを実装するには、クエリに使用する Keyword フィールドに書き込む前に、フィールド値を反転させてください。クエリ時には、マッチングするサフィックス文字列を反転させ、そのフィールドで プレフィックスクエリ (PrefixQuery) を実行します。

search を呼び出す際、クエリタイプを SuffixQuery に設定します。SearchQuery を使用して、結果のリミット、総数の追跡、その他の一般的なクエリ設定を構成します。

SearchResponse search(SearchRequest request)

次の例では、phone フィールドの FuzzyKeyword 値のうち、1234 で終わるものをクエリします。クエリは最大 10 行と一致の総数を返します。

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

SuffixQuery suffixQuery = new SuffixQuery();
suffixQuery.setFieldName("phone");
suffixQuery.setSuffix("1234");

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

クエリ条件。サフィックスクエリの場合、このパラメーターを SuffixQuery オブジェクトに設定します。

offset (オプション)

Integer

クエリを開始する位置。

limit (オプション)

Integer

取得する行の最大数。行を返さない場合は、このパラメーターを 0 に設定します。

collapse (オプション)

Collapse

指定したフィールドで結果の重複を排除するために使用されるコラプス設定。詳細については、「コラプス (distinct)」をご参照ください。

sort (オプション)

Sort

結果のソート順。FuzzyKeyword フィールドは、ソートフィールドとして使用できません。詳細については、「ソートとページネーション」をご参照ください。

trackTotalCount (オプション)

int

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

filter (オプション)

SearchFilter

query の結果に適用されるクエリ後のフィルター。

aggregationList (オプション)

List<Aggregation>

集約設定。FuzzyKeyword フィールドは、集約フィールドとして使用できません。詳細については、「集約」をご参照ください。

groupByList (オプション)

List<GroupBy>

グループ化設定。FuzzyKeyword フィールドは、グループ化フィールドとして使用できません。詳細については、「集約」をご参照ください。

token (オプション)

byte[]

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

クエリ条件

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

名前

タイプ

説明

fieldName (必須)

String

クエリ対象の FuzzyKeyword フィールドの名前。

suffix (必須)

String

クエリ文字列。完全なフィールド値は、この文字列で終わる必要があります。マッチングは大文字と小文字を区別します。

weight (オプション)

float

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

取得する列

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

名前

タイプ

説明

columns (オプション)

List<String>

取得する属性列。returnAllreturnAllFromIndex の両方が false の場合にのみ、このパラメーターを設定します。このパラメーターが設定されていない場合、プライマリキー列のみが返されます。

returnAll (オプション)

boolean

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

returnAllFromIndex (オプション)

boolean

インデックス付き属性列をすべて取得するかどうかを指定します。デフォルト値は false です。returnAllreturnAllFromIndex の両方を true に設定しないでください。

戻り値

searchSearchResponse オブジェクトを返します。次の表に、主なフィールドを示します。

名前

タイプ

説明

totalCount

long

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

rows

List<Row>

getRows() を呼び出して取得される、現在のクエリで返される行。行数は limit を超えません。

nextToken

byte[]

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

isAllSuccess

boolean

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