All Products
Search
Document Center

Tablestore:Match phrase query

Last Updated:Sep 30, 2026

Kueri match phrase mirip dengan kueri match, tetapi mengevaluasi posisi token. Suatu baris memenuhi kondisi kueri hanya jika urutan dan posisi token dalam baris tersebut sesuai dengan urutan dan posisi token dalam kata kunci. Jika metode tokenisasi untuk bidang yang ingin Anda kueri adalah tokenisasi fuzzy, kueri match phrase memiliki latensi lebih rendah dibandingkan kueri wildcard.

Skenario

Anda dapat menggunakan match phrase query untuk mencari data yang berisi frasa tertentu dengan susunan kata dalam urutan spesifik. Kueri ini dapat dikombinasikan dengan tokenisasi untuk melakukan pencarian teks penuh dalam berbagai skenario, seperti analisis data besar, pencarian konten, dan rekomendasi personalisasi. Misalnya, Anda dapat mengkueri kalimat yang berisi frasa tertentu dalam pencarian konten atau menemukan pesan yang tersusun dalam urutan tertentu dalam catatan percakapan.

Fitur

Kueri match phrase menggunakan pencocokan aproksimasi untuk mengkueri data dan mengevaluasi posisi token. Sebagai contoh, nilai pada kolom bertipe TEXT dalam suatu baris adalah "Hangzhou West Lake Scenic Area", sedangkan kata kunci yang Anda tentukan adalah "Hangzhou Scenic Area". Tablestore akan mengembalikan baris tersebut saat Anda menggunakan match query. Namun, saat Anda menggunakan match phrase query, Tablestore tidak mengembalikan baris tersebut. Jarak antara "Hangzhou" dan "Scenic Area" dalam kata kunci adalah 0, tetapi jarak dalam kolom baris tersebut adalah 2 karena terdapat dua kata—"West" dan "Lake"—di antara "Hangzhou" dan "Scenic Area".

Saat menggunakan match phrase query, Anda harus menentukan nama bidang yang ingin dikueri dan kata kuncinya. Suatu baris memenuhi kondisi kueri hanya jika urutan dan posisi token dalam baris tersebut sesuai dengan urutan dan posisi token dalam kata kunci.

Saat melakukan match phrase query, Anda dapat menentukan bobot yang diberikan pada bidang yang dikueri untuk menghitung skor relevansi berbasis BM25, kolom yang ingin dikembalikan, apakah jumlah total baris yang memenuhi kondisi kueri perlu dikembalikan, serta metode pengurutan baris hasil.

Operasi API

Anda dapat memanggil operasi Search atau ParallelScan dan mengatur jenis kueri menjadi MatchPhraseQuery untuk melakukan match phrase query.

Parameter

Parameter

Deskripsi

fieldName

Nama bidang yang ingin dicocokkan.

Anda dapat melakukan match phrase query pada bidang bertipe TEXT.

text

Kata kunci yang digunakan untuk mencocokkan nilai bidang saat melakukan match phrase query.

Jika bidang yang ingin dicocokkan bertipe TEXT, kata kunci tersebut ditokenisasi menjadi beberapa token berdasarkan jenis alat analisis yang Anda tentukan saat membuat indeks pencarian. Jika Anda tidak menentukan jenis alat analisis saat membuat indeks pencarian, tokenisasi kata tunggal akan dilakukan. Untuk informasi selengkapnya, lihat Tokenisasi.

Sebagai contoh, jika Anda melakukan match phrase query menggunakan frasa "this is", "..., this is tablestore" dan "this is a table" akan dikembalikan. Namun, "this table is ..." atau "is this a table" tidak akan dikembalikan.

query

Jenis kueri. Atur parameter query ke matchPhraseQuery.

offset

Posisi awal kueri saat ini.

limit

Jumlah maksimum baris yang ingin dikembalikan oleh kueri saat ini.

Untuk mengkueri hanya jumlah baris yang memenuhi kondisi tanpa data spesifik, atur parameter limit ke 0.

getTotalCount

Menentukan apakah jumlah total baris yang memenuhi kondisi kueri perlu dikembalikan. Nilai default parameter ini adalah false, yang berarti jumlah total baris tidak dikembalikan.

Jika Anda mengatur parameter ini ke true, performa kueri akan menurun.

weight

Bobot yang ingin diberikan pada bidang yang dikueri untuk menghitung skor relevansi kata kunci berbasis BM25. Parameter ini digunakan dalam skenario pencarian teks penuh. Semakin tinggi bobot yang Anda tentukan untuk bidang tersebut, semakin tinggi skor relevansi kata kunci berbasis BM25-nya. Nilai parameter ini adalah bilangan floating point positif.

Parameter ini tidak memengaruhi jumlah baris yang dikembalikan, tetapi memengaruhi skor relevansi kata kunci berbasis BM25 dari hasil kueri.

tableName

Nama tabel data.

indexName

Nama indeks pencarian.

columnsToGet

Menentukan apakah semua kolom setiap baris yang memenuhi kondisi kueri perlu dikembalikan. Anda dapat menentukan bidang returnAll dan columns untuk parameter columnsToGet.

Nilai default bidang returnAll adalah false, yang berarti tidak semua kolom dikembalikan. Dalam hal ini, Anda dapat menggunakan bidang columns untuk menentukan kolom yang ingin dikembalikan. Jika Anda tidak menentukan kolom yang ingin dikembalikan, hanya kolom kunci primer yang dikembalikan.

Jika Anda mengatur bidang returnAll ke true, semua kolom akan dikembalikan.

Catatan

Search Index hanya menyediakan skor relevansi BM25 dasar dan tidak mendukung model relevansi kustom.

Metode

Anda dapat menggunakan Konsol Tablestore, CLI Tablestore, atau SDK Tablestore untuk melakukan match phrase query.

Sebelum melakukan match phrase query, pastikan persiapan berikut telah dilakukan:

Gunakan Konsol Tablestore

Anda dapat menggunakan Konsol Tablestore untuk melakukan match phrase query.

  1. Buka tab Index Management.

    1. Masuk ke Konsol Tablestore.

    2. Di bilah navigasi atas, pilih kelompok sumber daya dan wilayah.

    3. Di halaman Overview, klik nama instans atau klik Instance Management di kolom Actions.

    4. Di tab Instance Details, pada tab Data Table List, klik nama tabel data atau klik Index Management di kolom Actions.

  2. Di tab Index Management, temukan Search Index target dan klik Search di kolom Actions.

  3. Di kotak dialog Search, tentukan kondisi kueri.

    1. Secara default, semua kolom dikembalikan. Untuk mengembalikan kolom tertentu, matikan Retrieve All Columns dan masukkan nama kolom yang dipisahkan koma.

      Catatan

      Secara default, Tablestore mengembalikan kolom kunci primer dari tabel data.

    2. Pilih operator logika: And, Or, atau Not.

      Jika Anda memilih And, kueri akan mengembalikan data yang memenuhi semua kondisi yang ditentukan. Jika Anda memilih Or, kueri akan mengembalikan data yang memenuhi setidaknya satu kondisi yang ditentukan. Jika Anda memilih Not, kueri akan mengembalikan data yang tidak memenuhi kondisi yang ditentukan.

    3. Pilih bidang indeks bertipe Text dan klik Add.

    4. Atur jenis kueri untuk bidang indeks menjadi Match Phrase Query (MatchPhraseQuery) dan masukkan nilai yang ingin dicari.

    5. Secara default, pengurutan dinonaktifkan. Untuk mengurutkan hasil berdasarkan bidang tertentu, aktifkan Enable Sorting, tambahkan bidang pengurutan, dan konfigurasikan urutan pengurutan.

    6. Secara default, agregasi dinonaktifkan. Untuk melakukan agregasi statistik pada bidang tertentu, aktifkan Enable Aggregation, tambahkan bidang untuk agregasi, dan konfigurasikan pengaturan agregasi.

  4. Klik OK.

    Hasil kueri akan ditampilkan di tab Index Management.

Gunakan CLI Tablestore

Anda dapat menggunakan CLI Tablestore untuk menjalankan perintah search guna mengkueri data menggunakan indeks pencarian. Untuk informasi selengkapnya, lihat Search index.

  1. Jalankan perintah search untuk menggunakan indeks pencarian search_index guna mengkueri data dan mengembalikan semua kolom terindeks dari setiap baris yang memenuhi kondisi kueri.

    search -n search_index --return_all_indexed
  2. Masukkan kondisi kueri saat diminta:

    {
        "Offset": -1,
        "Limit": 10,
        "Collapse": null,
        "Sort": null,
        "GetTotalCount": true,
        "Token": null,
        "Query": {
            "Name": "MatchPhraseQuery",
            "Query": {
                "FieldName": "col_text",
                "Text": "this is"
            }
        }
    }

Gunakan SDK Tablestore

Anda dapat melakukan match phrase query menggunakan SDK Tablestore berikut: Tablestore SDK for Java, Tablestore SDK for Go, Tablestore SDK for Python, Tablestore SDK for Node.js, Tablestore SDK for .NET, dan Tablestore SDK for PHP. Pada contoh ini, Tablestore SDK for Java digunakan.

Contoh berikut mengkueri baris yang bidang description-nya secara berurutan berisi token tablestore dan durable. Kueri mengembalikan hingga 10 baris, jumlah total baris yang cocok, dan skor relevansi.

// Kueri baris yang bidang 'description' berisi frasa "tablestore durable" secara berurutan
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());
}

Penagihan

Mengkueri data menggunakan Search Index mengonsumsi throughput baca. Untuk informasi selengkapnya, lihat Metering dan penagihan Search Index.

FAQ

Referensi