All Products
Search
Document Center

Tablestore:Suffix query

Last Updated:Jul 26, 2026

Kueri sufiks menggunakan Tablestore SDK for Java mencocokkan nilai lengkap pada bidang FuzzyKeyword yang diakhiri dengan string tertentu, lalu mengembalikan baris yang cocok atau jumlah totalnya.

Prasyarat

Instal Tablestore SDK for Java dan inisialisasi klien.

Catatan

Kueri sufiks memerlukan Tablestore SDK for Java versi 5.17.0 atau lebih baru.

Deskripsi fitur

Kueri sufiks mencocokkan nilai lengkap suatu bidang yang diakhiri dengan string tertentu. Kueri ini hanya didukung oleh bidang FuzzyKeyword. Untuk informasi selengkapnya mengenai tipe bidang ini, lihat String types. Pencocokan bersifat case-sensitive. Sebagai contoh, nilai bidang order-H001 cocok dengan sufiks H001, tetapi tidak cocok dengan h001.

Catatan

Bidang FuzzyKeyword tidak mendukung pengurutan (sorting) atau agregasi. Jika kueri yang sama memerlukan sorting atau agregasi, gunakan bidang lain yang mendukung operasi tersebut.

Bidang Keyword tidak mendukung SuffixQuery. Untuk menerapkan pencocokan sufiks yang setara, balikkan nilai bidang sebelum menyimpannya ke dalam bidang Keyword yang akan digunakan untuk kueri. Saat melakukan kueri, balikkan string sufiks yang ingin dicocokkan, lalu jalankan prefix query (PrefixQuery) pada bidang tersebut.

Atur tipe kueri menjadi SuffixQuery saat memanggil metode search. Gunakan SearchQuery untuk mengonfigurasi batas jumlah hasil, pelacakan jumlah total, serta pengaturan kueri umum lainnya.

SearchResponse search(SearchRequest request)

Contoh berikut melakukan kueri terhadap nilai FuzzyKeyword pada bidang phone yang diakhiri dengan 1234. Kueri ini mengembalikan hingga 10 baris dan jumlah total kecocokan.

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());

Parameter

Permintaan pencarian

request adalah objek SearchRequest yang berisi parameter berikut.

Nama

Type

Deskripsi

tableName (wajib)

String

Nama tabel data.

indexName (wajib)

String

Nama indeks pencarian.

searchQuery (wajib)

SearchQuery

Kondisi kueri dan pengaturan kueri umum.

columnsToGet (opsional)

SearchRequest.ColumnsToGet

Kolom yang akan dikembalikan. Jika parameter ini tidak dikonfigurasi, hanya kolom kunci primer yang dikembalikan.

timeoutInMillisecond (opsional)

int

Timeout kueri tingkat permintaan dalam milidetik. Nilai default-nya adalah -1, yang berarti tidak mengonfigurasi timeout kueri terpisah.

routingValues (opsional)

List<PrimaryKey>

Nilai kunci primer yang sesuai dengan bidang routing kustom. Biarkan parameter ini tidak diatur jika routing kustom tidak dikonfigurasi.

Pengaturan kueri

request.searchQuery adalah objek SearchQuery yang berisi parameter berikut.

Nama

Tipe

Deskripsi

query (wajib)

Query

Kondisi kueri. Atur parameter ini ke objek SuffixQuery untuk kueri sufiks.

offset (opsional)

Integer

Posisi awal untuk kueri saat ini.

limit (opsional)

Integer

Jumlah maksimum baris yang dikembalikan. Atur parameter ini ke 0 untuk tidak mengembalikan baris apa pun.

collapse (opsional)

Collapse

Konfigurasi collapse yang digunakan untuk menghapus duplikat hasil berdasarkan bidang tertentu. Untuk informasi selengkapnya, lihat Collapse (distinct).

sort (opsional)

Sort

Urutan pengurutan hasil. Bidang FuzzyKeyword tidak dapat digunakan sebagai bidang pengurutan. Untuk informasi selengkapnya, lihat Sorting and pagination.

trackTotalCount (opsional)

int

Jumlah maksimum baris yang cocok untuk dihitung. Nilai default-nya adalah TRACK_TOTAL_COUNT_DISABLED, yang menonaktifkan penghitungan. Atur parameter ini ke TRACK_TOTAL_COUNT untuk menghitung semua baris yang cocok. Nilai yang lebih kecil memberikan performa kueri yang lebih baik.

filter (opsional)

SearchFilter

Filter pasca-kueri yang diterapkan pada hasil query.

aggregationList (opsional)

List<Aggregation>

Konfigurasi agregasi. Bidang FuzzyKeyword tidak dapat digunakan sebagai bidang agregasi. Untuk informasi selengkapnya, lihat Aggregation.

groupByList (opsional)

List<GroupBy>

Konfigurasi pengelompokan. Bidang FuzzyKeyword tidak dapat digunakan sebagai bidang pengelompokan. Untuk informasi selengkapnya, lihat Aggregation.

token (opsional)

byte[]

Token paginasi. Atur nextToken dari respons sebelumnya sebagai parameter ini untuk membaca halaman berikutnya. Ketika token diatur, SDK mengosongkan sort karena token tersebut sudah berisi kondisi pengurutan.

Kondisi kueri

request.searchQuery.query adalah objek SuffixQuery yang berisi parameter berikut.

Nama

Tipe

Deskripsi

fieldName (wajib)

String

Nama bidang FuzzyKeyword yang akan dikueri.

suffix (wajib)

String

String kueri. Nilai bidang lengkap harus diakhiri dengan string ini. Pencocokan bersifat case-sensitive.

weight (opsional)

float

Bobot relevansi kondisi kueri. Nilainya harus berupa bilangan titik mengambang positif. Nilai yang lebih besar memberikan pengaruh lebih besar terhadap skor relevansi BM25. Parameter ini tidak mengubah baris mana yang cocok atau berapa banyak baris yang dikembalikan. Parameter ini hanya memengaruhi urutan hasil ketika ScoreSort digunakan. Nilai default-nya adalah 1.0.

Kolom yang dikembalikan

request.columnsToGet adalah objek SearchRequest.ColumnsToGet yang berisi parameter berikut.

Nama

Tipe

Deskripsi

columns (opsional)

List<String>

Kolom atribut yang dikembalikan. Konfigurasikan parameter ini hanya jika returnAll dan returnAllFromIndex keduanya bernilai false. Jika parameter ini tidak dikonfigurasi, hanya kolom kunci primer yang dikembalikan.

returnAll (opsional)

boolean

Menentukan apakah semua kolom atribut dari tabel data akan dikembalikan. Nilai default-nya adalah false.

returnAllFromIndex (opsional)

boolean

Menentukan apakah semua kolom atribut yang diindeks akan dikembalikan. Nilai default-nya adalah false. Jangan atur returnAll dan returnAllFromIndex ke true secara bersamaan.

Nilai kembalian

search mengembalikan objek SearchResponse. Tabel berikut menjelaskan bidang utamanya.

Nama

Type

Deskripsi

totalCount

long

Jumlah baris yang cocok, diperoleh dengan memanggil getTotalCount(). Nilai yang dikembalikan bergantung pada pengaturan trackTotalCount.

rows

List<Row>

Baris yang dikembalikan oleh kueri saat ini, diperoleh dengan memanggil getRows(). Jumlah baris tidak melebihi limit.

nextToken

byte[]

Token untuk halaman berikutnya, diperoleh dengan memanggil getNextToken(). Jika nilainya bukan null, atur sebagai token dalam permintaan berikutnya untuk melanjutkan pembacaan.

isAllSuccess

boolean

Menunjukkan apakah semua partisi indeks berhasil dikueri, diperoleh dengan memanggil isAllSuccess(). Jika nilainya false, respons berisi hasil parsial dan totalCount mungkin kurang dari jumlah kecocokan aktual.