All Products
Search
Document Center

Tablestore:Terms query

Last Updated:Jul 26, 2026

Kueri Terms dengan Tablestore SDK for Java mencocokkan nilai bidang atau token yang persis sama dengan salah satu istilah kueri, lalu mengembalikan baris yang cocok atau jumlah totalnya.

Prasyarat

Instal Tablestore SDK for Java dan inisialisasi klien.

Deskripsi fitur

Kueri Terms mencocokkan bidang tertentu terhadap beberapa istilah kueri dan mengembalikan suatu baris jika salah satu istilah memenuhi kondisi kecocokan eksak. Untuk bidang non-teks seperti bidang Keyword dan Long, seluruh nilai bidang harus persis sama dengan salah satu istilah kueri. Kombinasi OR ini mirip dengan kondisi IN dalam SQL. Untuk bidang Text (lihat String types), baris tersebut cocok jika salah satu token yang dihasilkan oleh alat analisis persis sama dengan salah satu istilah kueri. Istilah kueri itu sendiri tidak ditokenisasi.

Catatan

Token yang dihasilkan untuk bidang Text dapat berubah seiring konfigurasi alat analisis, pembaruan algoritma, dan penggunaan bahasa. Hindari menggunakan kueri Terms untuk mencocokkan seluruh string asli dari bidang Text. Sebagai gantinya, gunakan kolom virtual untuk memetakan bidang sumber ke tipe Keyword, lalu lakukan kueri pada kolom virtual tersebut.

Untuk memanggil search, atur jenis kueri menjadi TermsQuery, dan gunakan SearchQuery untuk mengonfigurasi jumlah baris yang dikembalikan, pelacakan jumlah total, serta perilaku kueri umum lainnya.

SearchResponse search(SearchRequest request)

Contoh berikut melakukan kueri terhadap baris yang nilai bidang category-nya persis sama dengan books atau games, serta mengembalikan maksimal 10 baris dan jumlah total baris yang cocok.

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

Parameter

Permintaan pencarian

request adalah objek SearchRequest yang berisi parameter berikut.

Name

Type

Description

tableName (required)

String

Nama tabel.

indexName (required)

String

Nama indeks pencarian.

searchQuery (required)

SearchQuery

Kondisi kueri dan pengaturan kueri umum.

columnsToGet (optional)

SearchRequest.ColumnsToGet

Pengaturan kolom yang dikembalikan. Jika Anda menghilangkan parameter ini, hanya kolom kunci primer yang dikembalikan.

timeoutInMillisecond (optional)

int

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

routingValues (optional)

List<PrimaryKey>

Nilai kunci primer untuk bidang routing kustom. Hilangkan parameter ini jika indeks tidak menggunakan routing kustom.

Pengaturan kueri

request.searchQuery adalah objek SearchQuery yang berisi parameter berikut.

Name

Type

Description

query (required)

Query

Kondisi kueri. Atur parameter ini ke TermsQuery untuk kueri terms.

offset (optional)

Integer

Posisi awal kueri.

limit (optional)

Integer

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

highlight (optional)

Highlight

Pengaturan ringkasan dan penyorotan untuk bidang Text. Untuk detail konfigurasi, lihat Summary and highlighting.

collapse (optional)

Collapse

Pengaturan collapse bidang, yang menghapus duplikat hasil berdasarkan bidang tertentu. Untuk detail konfigurasi, lihat Collapse query results.

sort (optional)

Sort

Urutan pengurutan hasil. Untuk detail konfigurasi, lihat Sort and paginate results.

trackTotalCount (optional)

int

Jumlah maksimum baris yang cocok yang diharapkan 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 meningkatkan performa kueri.

filter (optional)

SearchFilter

Filter yang diterapkan pada hasil query.

aggregationList (optional)

List<Aggregation>

Pengaturan agregasi. Untuk detail konfigurasi, lihat Aggregation.

groupByList (optional)

List<GroupBy>

Pengaturan pengelompokan. Untuk detail konfigurasi, lihat Aggregation.

token (optional)

byte[]

Token paginasi. Atur parameter ini ke nilai nextToken dari respons sebelumnya untuk melanjutkan pembacaan baris. Saat Anda mengatur token, SDK akan mengosongkan sort karena token tersebut sudah berisi kondisi pengurutan.

Kondisi kueri

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

Name

Type

Description

fieldName (required)

String

Nama bidang terindeks yang akan dikueri.

terms (required)

List<ColumnValue>

Istilah kueri. Anda dapat menentukan hingga 1.024 nilai. Suatu baris cocok jika salah satu istilah memenuhi kondisi kecocokan eksak. Untuk bidang Text, setiap nilai digunakan sebagai istilah lengkap dan tidak ditokenisasi.

weight (optional)

float

Bobot relevansi kondisi kueri. Nilainya harus berupa bilangan titik mengambang positif. Nilai yang lebih besar memberikan kontribusi lebih besar terhadap skor relevansi BM25. Parameter ini tidak memengaruhi kecocokan atau jumlah baris yang dikembalikan. Parameter ini hanya memengaruhi urutan hasil ketika ScoreSort digunakan untuk mengurutkan berdasarkan skor relevansi. Nilai default: 1.0.

Kolom yang dikembalikan

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

Name

Type

Description

columns (optional)

List<String>

Kolom atribut yang dikembalikan. Atur parameter ini hanya jika returnAll dan returnAllFromIndex keduanya bernilai false. Jika Anda menghilangkan parameter ini, hanya kolom kunci primer yang dikembalikan.

returnAll (optional)

boolean

Menentukan apakah semua kolom atribut dalam tabel dikembalikan. Nilai default: false.

returnAllFromIndex (optional)

boolean

Menentukan apakah semua kolom atribut terindeks dikembalikan. Nilai default: false. Parameter ini dan returnAll tidak boleh keduanya bernilai true.

Nilai kembalian

search mengembalikan objek SearchResponse. Tabel berikut menjelaskan bidang intinya.

Name

Type

Description

totalCount

long

Jumlah baris yang cocok. Panggil getTotalCount() untuk mendapatkan nilainya. Nilai yang dikembalikan bergantung pada pengaturan trackTotalCount.

rows

List<Row>

Baris yang dikembalikan oleh kueri ini. Panggil getRows() untuk mendapatkan nilainya. Jumlah baris tidak melebihi limit.

searchHits

List<SearchHit>

Hasil hit kueri. Panggil getSearchHits() untuk mendapatkan nilainya. Jika highlight dikonfigurasi, bidang ini berisi data baris serta hasil ringkasan dan penyorotan.

nextToken

byte[]

Token halaman berikutnya. Panggil getNextToken() untuk mendapatkan nilainya. Jika nilainya bukan null, atur sebagai token dalam permintaan berikutnya untuk melanjutkan pembacaan baris.

isAllSuccess

boolean

Menunjukkan apakah semua partisi indeks berhasil dikueri. Panggil isAllSuccess() untuk mendapatkan nilainya. Jika nilainya false, respons berisi hasil parsial dan totalCount mungkin kurang dari jumlah aktual baris yang cocok.