All Products
Search
Document Center

Tablestore:Kueri awalan

Last Updated:Sep 30, 2026

Kueri awalan (PrefixQuery) menemukan baris dalam indeks pencarian yang nilai bidangnya diawali dengan string tertentu.

Ikhtisar

PrefixQuery mencocokkan nilai kolom yang diawali dengan awalan tertentu. Perilaku kueri bergantung pada tipe data kolom tersebut:

  • Keyword: Tipe data string dasar. Seiring peningkatan volume data, performa kueri menurun. Tipe ini hanya cocok untuk set data kecil.

  • FuzzyKeyword: Tipe data yang dioptimalkan untuk pencarian fuzzy seperti kueri awalan. Performa kueri tetap stabil terlepas dari volume data. Tipe ini direkomendasikan untuk sebagian besar skenario kueri awalan.

  • Text: Nilai kolom ditokenisasi sebelum diindeks. Suatu baris cocok jika setidaknya satu token hasil tokenisasi diawali dengan awalan yang ditentukan. Karena ketidakpastian tokenisasi, hasil kueri bisa tidak dapat diprediksi. Tipe data ini hanya didukung untuk kompatibilitas dan harus digunakan dengan hati-hati.

Cara memilih tipe data

Tabel berikut merangkum kesesuaian masing-masing tipe data untuk kueri awalan.

Tipe

Performa

Rekomendasi

Keyword

Menurun seiring peningkatan volume data

Hanya untuk set data kecil

FuzzyKeyword

Stabil terlepas dari volume data

Direkomendasikan untuk sebagian besar skenario

Text

Hasil tidak dapat diprediksi karena tokenisasi

Tidak direkomendasikan

Contoh pencocokan awalan

Asumsikan suatu kolom berisi nilai-nilai berikut: hangzhou, beijing, shanghai, dan harbin.

  • Awalan hang cocok dengan hangzhou tetapi tidak cocok dengan beijing, shanghai, atau harbin.

  • Awalan ha cocok dengan hangzhou dan harbin.

API

Anda dapat melakukan kueri awalan menggunakan API Search atau ParallelScan. Jenis kuerinya adalah PrefixQuery.

Parameter

Parameter

Deskripsi

query

Jenis kueri. Atur nilai ini ke PrefixQuery.

fieldName

Nama kolom target.

prefix

String awalan yang akan dicocokkan terhadap nilai kolom.

Untuk kolom Text, nilai kolom ditokenisasi sebelum pencocokan. Suatu baris cocok jika setidaknya satu token diawali dengan awalan yang ditentukan.

getTotalCount

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

Mengatur parameter ini ke true meningkatkan latensi kueri.

weight

Bobot kueri harus berupa bilangan titik mengambang positif. Dalam skenario pencarian teks lengkap, parameter ini menyesuaikan kontribusi kolom terhadap skor relevansi BM25. Nilai yang lebih tinggi meningkatkan pengaruh kolom terhadap peringkat.

Parameter ini tidak memengaruhi set hasil yang dikembalikan, hanya skor BM25 setiap baris dalam hasil.

tableName

Nama tabel data.

indexName

Nama indeks pencarian.

columnsToGet

Menentukan kolom yang dikembalikan untuk setiap baris yang cocok. Konfigurasikan ini menggunakan parameter returnAll dan columns.

Secara default, returnAll bernilai false. Jika columns tidak diatur, hanya kolom kunci primer yang dikembalikan. Jika columns diatur, hanya kolom yang ditentukan yang dikembalikan.

Atur returnAll ke true untuk mengembalikan semua kolom.

Penggunaan

Anda dapat melakukan kueri awalan menggunakan Konsol Tablestore, tool command-line, atau SDK. Sebelum memulai, penuhi prasyarat berikut.

Penting

PrefixQuery pada kolom FuzzyKeyword saat ini hanya didukung melalui SDK Tablestore. Konsol dan tool command-line hanya mendukung kolom Keyword.

Gunakan konsol

  1. Buka tab Index Management.

    1. Login ke Tablestore 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, 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, konfigurasikan kondisi kueri.

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

      Catatan

      Secara default, Tablestore mengembalikan kolom kunci primer 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 kondisi yang ditentukan. Jika Anda memilih Not, kueri mengembalikan data yang tidak memenuhi kondisi yang ditentukan.

    3. Pilih bidang indeks dan klik Add.

    4. Atur jenis kueri ke Prefix query (PrefixQuery) dan masukkan nilai awalan.

    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.

Menggunakan alat baris perintah

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

Penting

Tool command-line hanya mendukung kueri awalan pada kolom Keyword, bukan pada kolom FuzzyKeyword.

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

    search -n search_index --return_all_indexed
  2. Masukkan kondisi kueri saat diminta. Kode berikut merupakan contoh:

    {
        "Offset": -1,
        "Limit": 10,
        "Collapse": null,
        "Sort": null,
        "GetTotalCount": true,
        "Token": null,
        "Query": {
            "Name": "PrefixQuery",
            "Query": {
                "FieldName": "col_keyword",
                "Prefix": "hangzhou"
            }
        }
    }

Gunakan SDK

Anda dapat melakukan kueri awalan menggunakan Java SDK, Go SDK, Python SDK, Node.js SDK, .NET SDK, atau PHP SDK. Contoh berikut menggunakan Java SDK.

Catatan

Pernyataan kueri identik untuk tipe Keyword dan FuzzyKeyword. Satu-satunya perbedaan adalah tipe data kolom yang dikueri.

Contoh berikut mengkueri baris yang bidang category-nya bertipe FuzzyKeyword dan diawali dengan hang. Kueri mengembalikan hingga 10 baris dan jumlah total baris yang cocok.

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

PrefixQuery prefixQuery = new PrefixQuery();
prefixQuery.setFieldName("category");
prefixQuery.setPrefix("hang");

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

Penagihan

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

FAQ

Dokumen terkait