All Products
Search
Document Center

Tablestore:Kueri cocok

Last Updated:Sep 29, 2026

Kueri cocok melakukan pencocokan perkiraan pada data dalam tabel. Tablestore menggunakan tokenizer yang dikonfigurasi untuk memisahkan nilai dalam kolom Teks dan kueri pencarian menjadi token, lalu mencari token-token tersebut. Untuk menjalankan kueri fuzzy berkinerja tinggi pada kolom Teks yang menggunakan tokenisasi fuzzy, gunakan kueri pencocokan frasa.

Skenario

Kueri cocok menemukan data yang berisi frasa tertentu. Saat digunakan bersama tokenisasi, kueri ini memungkinkan pengindeksan teks penuh, sehingga berguna dalam skenario seperti analitik data, pencarian konten, manajemen pengetahuan, analisis media sosial, analisis log, sistem chat AI, dan tinjauan kepatuhan. Misalnya, Anda dapat dengan cepat menyaring produk di platform E-dagang yang judul, deskripsi, atau labelnya mengandung kata kunci yang dimasukkan pengguna. Anda juga dapat dengan cepat menemukan pesan error atau operasi tidak normal dalam log.

Ikhtisar fungsi

Kueri cocok melakukan pencocokan perkiraan pada data dalam tabel. Sebagai contoh, pertimbangkan baris dengan kolom `title` bertipe Teks yang nilainya "Hángzhōu Xīhú Fēngjǐngqū". Jika kolom ini menggunakan tokenisasi kata tunggal dan kueri pencarian adalah "hú fēng", baris tersebut akan dicocokkan.

Saat menggunakan kueri cocok, Anda harus menentukan kolom yang akan dicocokkan dan kueri pencarian. Suatu baris memenuhi kondisi kueri jika salah satu token dari kueri pencarian terdapat dalam kolom yang ditentukan.

Anda juga dapat mengonfigurasi parameter seperti jumlah minimum kecocokan, bobot kueri, kolom yang akan dikembalikan, apakah jumlah total baris yang cocok dikembalikan, serta metode pengurutan untuk set hasil.

Operasi API

Operasi API untuk kueri cocok adalah Search atau ParallelScan. Jenis kueri spesifiknya adalah MatchQuery.

Parameter

Parameter

Deskripsi

fieldName

Kolom yang akan dicocokkan.

Kueri cocok dapat diterapkan pada kolom bertipe Teks.

text

Kueri pencarian, yaitu nilai yang akan dicocokkan.

Untuk kolom Teks, kueri pencarian dibagi menjadi beberapa token berdasarkan jenis tokenizer yang ditetapkan saat Anda membuat indeks pencarian. Jika tidak ada tokenizer yang ditetapkan, tokenisasi kata tunggal digunakan secara default.

Sebagai contoh, untuk kolom Teks yang menggunakan tokenisasi kata tunggal, kueri pencarian "this is" dapat mencocokkan "..., this is tablestore", "is this tablestore", "tablestore is cool", "this", dan "is".

query

Tetapkan jenis kueri menjadi matchQuery.

offset

Posisi awal untuk kueri.

limit

Jumlah maksimum hasil yang dikembalikan untuk kueri.

Untuk hanya mendapatkan jumlah baris tanpa data apa pun, tetapkan limit ke 0. Hal ini tidak mengembalikan baris apa pun.

minimumShouldMatch

Jumlah minimum kecocokan.

Suatu baris dikembalikan hanya jika nilai dalam kolom `fieldName` mengandung setidaknya jumlah minimum token yang cocok.

Catatan

`minimumShouldMatch` harus digunakan bersama operator logika OR.

operator

Operator logika. Default-nya adalah OR, yang berarti suatu baris memenuhi kondisi kueri jika beberapa token cocok.

Jika Anda menetapkan `operator` ke AND, suatu baris memenuhi kondisi kueri hanya jika semua token ada dalam nilai kolom.

getTotalCount

Menentukan apakah jumlah total baris yang cocok dikembalikan. Nilai default-nya adalah false, yang berarti jumlah total tidak dikembalikan.

Mengembalikan jumlah total baris yang cocok dapat memengaruhi kinerja kueri.

weight

Bobot kueri. Ini digunakan untuk pengurutan berbasis skor dalam skenario indeks teks penuh. Parameter ini menentukan bobot untuk perhitungan skor pada suatu kolom. Nilai yang lebih besar menghasilkan skor yang lebih tinggi. Nilainya harus berupa bilangan titik mengambang positif.

Parameter ini tidak memengaruhi jumlah hasil yang dikembalikan, hanya skornya.

tableName

Nama tabel data.

indexName

Nama indeks pencarian.

columnsToGet

Menentukan apakah semua kolom dikembalikan. Ini mencakup pengaturan `returnAll` dan `columns`.

`returnAll` secara default bernilai false, yang berarti tidak semua kolom dikembalikan. Dalam hal ini, Anda dapat menggunakan `columns` untuk menentukan kolom mana yang akan dikembalikan. Jika Anda tidak menentukan kolom, hanya kolom kunci primer yang dikembalikan.

Jika Anda menetapkan `returnAll` ke true, semua kolom dikembalikan.

Catatan

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

Penggunaan

Anda dapat menjalankan kueri cocok menggunakan Konsol, antarmuka baris perintah, atau kit pengembangan perangkat lunak (SDK). Sebelum memulai, selesaikan persiapan berikut.

Gunakan Konsol

  1. Buka tab Index Management.

    1. Login ke Table Store console.

    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, di 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, kueri data.

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

      Catatan

      Secara default, Table Store mengembalikan kolom kunci primer dari tabel data.

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

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

    3. Pilih bidang indeks bertipe Teks dan klik Add.

    4. Tetapkan jenis kueri untuk bidang indeks menjadi Match Query (MatchQuery) dan masukkan nilai yang akan dikueri.

    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 ditampilkan di tab Index Management.

Gunakan antarmuka baris perintah

Jalankan perintah search di antarmuka baris perintah untuk mengkueri data menggunakan indeks pencarian. Untuk informasi selengkapnya, lihat Search index.

  1. Jalankan perintah search untuk mengkueri data dalam tabel menggunakan indeks pencarian `search_index` dan mengembalikan semua kolom yang diindeks.

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

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

Gunakan SDK

Anda dapat menjalankan kueri cocok menggunakan Java SDK, Go SDK, Python SDK, Node.js SDK, .NET SDK, atau PHP SDK. Bagian ini menggunakan Java SDK sebagai contoh.

Contoh berikut mengkueri baris yang bidang description-nya mengandung token tablestore atau durable dan mengembalikan hingga 10 baris, jumlah total baris yang cocok, serta 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());
}

Penagihan

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

FAQ

Referensi