All Products
Search
Document Center

Tablestore:Match phrase query

Last Updated:Jul 28, 2026

Kueri match phrase menggunakan Tablestore SDK for Java mencari bidang Text berdasarkan urutan dan posisi token, lalu mengembalikan baris yang memenuhi kondisi frasa tersebut beserta skor relevansinya.

Prasyarat

Instal Tablestore SDK for Java dan inisialisasi klien.

Deskripsi fitur

Kueri match phrase mencari token yang muncul secara berurutan dalam urutan dan posisi tertentu pada bidang Text. Untuk informasi mengenai tipe bidang, lihat String types. Nilai bidang dan teks kueri dianalisis menggunakan alat analisis (analyzer) yang dikonfigurasi saat indeks pencarian dibuat. Jika tidak ada analyzer yang dikonfigurasi, tokenisasi kata tunggal digunakan secara default.

Kueri match phrase mengharuskan semua token kueri muncul dalam urutan yang sama dan pada posisi yang berdekatan. Sebagai contoh, teks kueri this is cocok dengan this is tablestore, tetapi tidak cocok dengan this table is atau is this a table. Berbeda dengan itu, kueri match query hanya memeriksa keberadaan token yang cocok tanpa mempertimbangkan posisi berdekatan atau urutan seperti dalam teks kueri.

Jika bidang Text menggunakan fuzzy analyzer, kueri match phrase dapat memberikan pencocokan kabur (fuzzy matching) yang mirip dengan wildcard query dengan latensi kueri yang lebih rendah.

Contoh berikut menanyakan baris yang bidang description-nya secara berurutan berisi token tablestore dan durable sesuai urutan tersebut. Kueri ini mengembalikan hingga 10 baris, jumlah total baris yang cocok, serta skor relevansi.

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

MatchPhraseQuery matchPhraseQuery = new MatchPhraseQuery();
matchPhraseQuery.setFieldName("description");
matchPhraseQuery.setText("tablestore durable");

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

columnsToGet (optional)

SearchRequest.ColumnsToGet

Pengaturan kolom yang dikembalikan. Jika parameter ini diabaikan, 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. Abaikan 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 MatchPhraseQuery untuk kueri match phrase.

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 dan batasannya, lihat Summary and highlighting.

collapse (optional)

Collapse

Pengaturan collapse hasil berdasarkan bidang tertentu, yang menghapus duplikat hasil berdasarkan bidang yang ditentukan. 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 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 pencocokan frasa

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

Name

Type

Description

fieldName (required)

String

Nama bidang indeks Text yang akan ditanyakan.

text (required)

String

Teks kueri. Teks ini dianalisis menggunakan analyzer bidang dan dicocokkan berdasarkan urutan dan posisi token.

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.

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 parameter ini diabaikan, 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 pencarian. 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 ditanyakan. Panggil isAllSuccess() untuk mendapatkan nilainya. Jika nilainya false, respons berisi hasil parsial dan totalCount mungkin kurang dari jumlah aktual baris yang cocok.

Hasil pencarian

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.