All Products
Search
Document Center

Tablestore:Match query

Last Updated:Jul 28, 2026

Kueri match pada Tablestore SDK for Java mencari bidang Text atau Keyword, lalu mengembalikan baris yang memenuhi kondisi pencocokan beserta skor relevansinya.

Prasyarat

Instal Tablestore SDK for Java dan inisialisasi klien.

Deskripsi fitur

Kueri match mencari bidang Text atau Keyword. Untuk informasi mengenai tipe bidang tersebut, lihat String types. Kedua tipe bidang ini menerapkan perilaku pencocokan yang berbeda:

  • Text: Nilai bidang dan teks kueri dianalisis menggunakan analyzer yang dikonfigurasi saat indeks pencarian dibuat. Jika tidak ada analyzer yang dikonfigurasi, tokenisasi kata tunggal digunakan secara default. Operator OR yang digunakan secara default akan mencocokkan nilai bidang yang mengandung salah satu token kueri. Anda dapat menggunakan operator AND untuk mewajibkan semua token kueri cocok, atau menentukan jumlah minimum token yang harus cocok.

  • Keyword: Baik nilai bidang maupun teks kueri tidak dianalisis. Suatu baris hanya cocok jika nilai bidang lengkapnya sama persis dengan teks kueri.

Kueri match tidak mensyaratkan token yang cocok berdekatan atau dalam urutan yang sama seperti teks kueri. Untuk mencocokkan token dalam urutan tertentu, gunakan match phrase query. Jika bidang Text menggunakan fuzzy analyzer dan Anda memerlukan pencarian fuzzy berkinerja tinggi, kueri match phrase juga direkomendasikan.

Contoh berikut melakukan kueri terhadap baris yang bidang description-nya mengandung token tablestore atau durable, serta mengembalikan hingga 10 baris, jumlah total baris yang cocok, dan skor relevansi.

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

MatchQuery matchQuery = new MatchQuery();
matchQuery.setFieldName("description");
matchQuery.setText("tablestore durable");

SearchQuery searchQuery = new SearchQuery();
searchQuery.setQuery(matchQuery);
searchQuery.setSort(new Sort(Collections.singletonList(new ScoreSort())));
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);
for (SearchHit hit : response.getSearchHits()) {
    System.out.println(hit.getRow());
    System.out.println(hit.getScore());
}

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 MatchQuery untuk kueri match.

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 kinerja 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 match

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

Name

Type

Description

fieldName (required)

String

Nama bidang indeks Text atau Keyword yang akan dikueri.

text (required)

String

Teks kueri. Untuk bidang Text, teks kueri dianalisis menggunakan analyzer bidang. Untuk bidang Keyword, teks kueri tidak dianalisis.

operator (optional)

QueryOperator

Operator yang digunakan untuk menggabungkan token kueri. OR (default) mencocokkan baris jika salah satu token cocok. AND mewajibkan semua token cocok.

minShouldMatch (optional)

String atau int

Jumlah minimum token kueri yang harus cocok ketika operator adalah OR. Tentukan bilangan bulat seperti 2 atau string persentase seperti "75%".

weight (optional)

float

Bobot kueri. Nilai default-nya adalah 1.0 dan nilainya harus berupa bilangan titik mengambang positif. Nilai yang lebih besar meningkatkan kontribusi kueri ini terhadap skor relevansi tanpa mengubah cakupan pencocokan.

Penting

setMinimumShouldMatch(Integer) sudah tidak digunakan lagi. Gunakan setMinShouldMatch(int) atau setMinShouldMatch(String).

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-nya adalah false.

returnAllFromIndex (optional)

boolean

Menentukan apakah semua kolom atribut yang diindeks dikembalikan. Nilai default-nya adalah false. Parameter ini dan returnAll tidak boleh keduanya bernilai true.

Nilai kembalian

Respons kueri

Metode search mengembalikan objek SearchResponse. Tabel berikut menjelaskan bidang utamanya.

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 dalam respons saat ini. Panggil getRows() untuk mendapatkan nilainya. Jumlah baris tidak melebihi limit.

searchHits

List<SearchHit>

Hasil kueri. Panggil getSearchHits() untuk mendapatkan nilainya. Bidang ini berisi skor relevansi 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 sebenarnya baris yang cocok.

Hasil kueri

response.searchHits[] adalah objek SearchHit yang berisi bidang utama berikut.

Name

Type

Description

row

Row

Baris yang cocok. Panggil getRow() untuk mendapatkan nilainya.

score

Double

Skor relevansi. Panggil getScore() untuk mendapatkan nilainya. Saat ScoreSort digunakan, bidang ini berisi skor aktual. Token yang cocok dan weight memengaruhi skor tersebut.

highlightResultItem

HighlightResultItem

Hasil ringkasan dan penyorotan. Panggil getHighlightResultItem() untuk mendapatkan nilainya.

Contoh

Mencocokkan semua token kueri

Atur operator ke AND agar suatu baris hanya cocok jika nilai bidangnya mengandung semua token kueri.

MatchQuery matchQuery = new MatchQuery();
matchQuery.setFieldName("description");
matchQuery.setText("tablestore durable");
matchQuery.setOperator(QueryOperator.AND);

SearchQuery searchQuery = new SearchQuery();
searchQuery.setQuery(matchQuery);

Menetapkan jumlah minimum token yang cocok

Saat operator OR digunakan, atur minShouldMatch untuk menentukan jumlah minimum token kueri yang harus cocok. Contoh berikut mewajibkan minimal dua token yang cocok.

MatchQuery matchQuery = new MatchQuery();
matchQuery.setFieldName("description");
matchQuery.setText("tablestore durable cloud");
matchQuery.setOperator(QueryOperator.OR);
matchQuery.setMinShouldMatch(2);

SearchQuery searchQuery = new SearchQuery();
searchQuery.setQuery(matchQuery);