全部产品
Search
文档中心

Tablestore:Kueri Wildcard

更新时间:Jul 06, 2025

Anda dapat menggunakan kueri wildcard untuk melakukan pencarian fuzzy. Kueri ini mirip dengan operator LIKE, yang digunakan untuk mencocokkan data berdasarkan kata atau frase tertentu dalam teks.

Catatan

Untuk menggunakan operator NOT LIKE, Anda harus menggabungkan kueri wildcard dengan parameter mustNotQueries dari kueri Boolean. Untuk informasi lebih lanjut, lihat Kueri Boolean.

Ikhtisar Fitur

Anda dapat menggunakan simbol tertentu dalam kueri wildcard untuk melakukan pencocokan fuzzy, meningkatkan akurasi dan efisiensi pencarian data.

Saat menggunakan kueri wildcard, Anda dapat memasukkan string yang berisi karakter asterisk (*) dan tanda tanya (?). Karakter asterisk (*) cocok dengan string dengan panjang apa pun di awal, tengah, atau akhir istilah pencarian. Tanda tanya (?) cocok dengan satu karakter pada posisi tertentu. String kueri dapat dimulai dengan asterisk (*) atau tanda tanya (?). Sebagai contoh, jika Anda mencari string table*e, maka tablestore akan cocok.

Tipe Keyword dan FuzzyKeyword mendukung kueri wildcard.

  • Keyword: Tipe data dasar untuk string. Performa kueri fuzzy seperti wildcard pada data berukuran sedang hingga besar kurang optimal, terutama saat ukuran data bertambah.

  • FuzzyKeyword: Tipe data dioptimalkan untuk kueri fuzzy seperti wildcard. Memberikan performa yang lebih baik dan stabil dibandingkan tipe Keyword tanpa bergantung pada ukuran data.

Untuk memenuhi kebutuhan pencarian fuzzy dalam berbagai skenario, indeks pencarian menyediakan tiga jenis kueri wildcard. Tabel berikut menjelaskan ketiganya.

Catatan

Topik ini menjelaskan kueri wildcard berdasarkan tipe Keyword dan FuzzyKeyword. Untuk informasi tentang kueri fuzzy berdasarkan tipe Text, lihat Kueri Fuzzy.

Tipe Data

Metode Kueri

Keuntungan

Kerugian

Keyword

WildcardQuery

Kompatibel dengan Elasticsearch

Performa kueri menurun saat ukuran data indeks bertambah.

FuzzyKeyword

WildcardQuery

Performa baik dan stabil serta tidak menurun saat ukuran data bertambah.

Pengembangan data terjadi.

Text

MatchPhraseQuery

Data tipe Text bisa tidak peka huruf besar/kecil.

Pengembangan data terjadi.

Catatan Penggunaan

Panjang string kueri dalam kueri wildcard pada data tipe Keyword atau FuzzyKeyword tidak boleh melebihi 32 karakter.

Operasi API

Untuk menjalankan kueri wildcard, panggil operasi Search atau ParallelScan, lalu atur tipe kueri menjadi WildcardQuery.

Parameter

Parameter

Deskripsi

fieldName

Nama kolom yang ingin Anda kueri.

value

String yang berisi karakter wildcard. Panjang string tidak boleh melebihi 32 karakter.

query

Tipe kueri. Atur parameter ini menjadi WildcardQuery.

getTotalCount

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

Jika Anda mengatur parameter ini menjadi true, performa kueri akan berkurang.

weight

Bobot yang ingin Anda tetapkan pada kolom yang ingin Anda kueri untuk menghitung skor relevansi kata kunci berbasis BM25. Parameter ini digunakan dalam skenario pencarian teks penuh. Jika Anda menetapkan bobot lebih tinggi untuk kolom yang ingin Anda kueri, skor relevansi kata kunci berbasis BM25 untuk kolom tersebut lebih tinggi. Nilai parameter ini adalah bilangan floating point positif.

Parameter ini tidak mempengaruhi jumlah baris yang dikembalikan tetapi mempengaruhi 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 dikembalikan. Anda dapat mengonfigurasi bidang returnAll dan columns untuk parameter ini.

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

Jika Anda mengatur bidang returnAll menjadi true, semua kolom dikembalikan.

Metode

Anda dapat menggunakan konsol Tablestore, CLI Tablestore, atau SDK Tablestore untuk menjalankan kueri wildcard. Pastikan langkah-langkah persiapan berikut telah dilakukan:

Penting

Hanya SDK Tablestore yang dapat digunakan untuk menjalankan kueri wildcard pada data tipe FuzzyKeyword.

Gunakan konsol Tablestore

  1. Pergi ke tab Indexes.

    1. Masuk ke konsol Tablestore.

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

    3. Di halaman Overview, klik nama instance yang ingin dikelola atau pilih Manage Instance di kolom Actions.

    4. Di tab Tables pada halaman Instance Details, klik nama tabel data atau pilih Indexes di kolom Tindakan tabel data.

  2. Di tab Indexes, temukan indeks pencarian yang ingin digunakan dan klik Manage Data di kolom Actions.

  3. Di kotak dialog Search, tentukan kondisi kueri.

    1. Secara default, sistem mengembalikan semua kolom atribut. Untuk mengembalikan kolom atribut tertentu, matikan All Columns dan tentukan kolom yang ingin dikembalikan. Pisahkan beberapa kolom dengan koma (,).

      Catatan

      Secara default, sistem mengembalikan semua kolom kunci utama tabel data.

    2. Pilih operator logika And, Or, atau Not sesuai kebutuhan bisnis Anda.

      Jika Anda memilih operator logika And, data yang memenuhi kondisi kueri dikembalikan. Jika Anda memilih operator Or dan menentukan satu kondisi kueri, data yang memenuhi kondisi kueri dikembalikan. Jika Anda memilih operator logika Atau dan menentukan beberapa kondisi kueri, data yang memenuhi salah satu kondisi kueri dikembalikan. Jika Anda memilih operator logika Not, data yang tidak memenuhi kondisi kueri dikembalikan.

    3. Pilih kolom dan klik Add.

    4. Atur parameter Query Type menjadi WildcardQuery(WildcardQuery) dan masukkan nilai yang berisi karakter wildcard.

    5. Secara default, fitur pengurutan dinonaktifkan. Jika ingin mengurutkan hasil kueri berdasarkan kolom tertentu, aktifkan Sort dan tentukan kolom serta urutan pengurutan.

    6. Secara default, fitur agregasi dinonaktifkan. Jika ingin mengumpulkan statistik pada kolom tertentu, aktifkan Collect Statistics, tentukan kolom yang ingin dianalisis, dan konfigurasikan informasi yang diperlukan.

  4. Klik OK.

    Data yang memenuhi kondisi kueri ditampilkan dalam urutan yang ditentukan di tab Indexes.

Gunakan CLI Tablestore

Anda dapat menggunakan CLI Tablestore untuk menjalankan perintah search guna mengkueri data menggunakan indeks pencarian. Untuk informasi lebih lanjut, lihat Indeks Pencarian.

Penting

CLI Tablestore hanya mendukung kueri wildcard pada data tipe Keyword. Anda tidak dapat menggunakan CLI Tablestore untuk kueri wildcard pada data tipe FuzzyKeyword.

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

    search -n search_index --return_all_indexed
  2. Masukkan kondisi kueri sesuai petunjuk sistem:

    {
        "Offset": -1,
        "Limit": 10,
        "Collapse": null,
        "Sort": null,
        "GetTotalCount": true,
        "Token": null,
        "Query": {
            "Name": "WildcardQuery",
            "Query": {
                "FieldName": "col_keyword",
                "Value": "hang*u"
            }
        }
    }

Gunakan SDK Tablestore

Anda dapat menjalankan kueri wildcard menggunakan SDK Tablestore berikut: SDK Tablestore untuk Java, SDK Tablestore untuk Go, SDK Tablestore untuk Python, SDK Tablestore untuk Node.js, SDK Tablestore untuk .NET, dan SDK Tablestore untuk PHP. Contoh ini menggunakan SDK Tablestore untuk Java.

Catatan

Pernyataan kueri dalam kueri wildcard pada data tipe Keyword sama dengan pernyataan kueri pada data tipe FuzzyKeyword, tetapi tipe kolom yang ingin dikueri berbeda.

Contoh kode berikut menunjukkan cara mengkueri baris di mana nilai kolom Col_Keyword cocok dengan pola "hang*u".

/**
 * Cari tabel untuk baris di mana nilai kolom Col_Keyword cocok dengan pola "hang*u".
 * @param client
 */
private static void wildcardQuery(SyncClient client) {
    SearchQuery searchQuery = new SearchQuery();
    WildcardQuery wildcardQuery = new WildcardQuery(); // Gunakan WildcardQuery.
    wildcardQuery.setFieldName("Col_Keyword");
    wildcardQuery.setValue("hang*u"); // Tentukan string yang berisi satu atau lebih karakter wildcard dalam wildcardQuery.
    searchQuery.setQuery(wildcardQuery);
    //searchQuery.setGetTotalCount(true); // Tentukan bahwa jumlah total baris yang cocok dikembalikan.

    SearchRequest searchRequest = new SearchRequest("<TABLE_NAME>", "<SEARCH_INDEX_NAME>", searchQuery);
    // Anda dapat mengonfigurasi parameter columnsToGet untuk menentukan kolom yang dikembalikan atau menentukan bahwa semua kolom dikembalikan. Jika Anda tidak mengonfigurasi parameter ini, hanya kolom kunci utama yang dikembalikan.
    //SearchRequest.ColumnsToGet columnsToGet = new SearchRequest.ColumnsToGet();
    //columnsToGet.setReturnAll(true); // Tentukan bahwa semua kolom dikembalikan.
    //columnsToGet.setColumns(Arrays.asList("ColName1","ColName2")); // Tentukan kolom yang ingin Anda kembalikan.
    //searchRequest.setColumnsToGet(columnsToGet);

    SearchResponse resp = client.search(searchRequest);
    //System.out.println("TotalCount: " + resp.getTotalCount()); // Tampilkan jumlah total baris yang cocok bukan jumlah baris yang dikembalikan.
    System.out.println("Row: " + resp.getRows());
}

Aturan Penagihan

Saat menggunakan indeks pencarian untuk kueri data, Anda dikenakan biaya untuk throughput baca yang dikonsumsi. Untuk informasi lebih lanjut, lihat Item tagihan indeks pencarian.

FAQ

Referensi

  • Saat menggunakan indeks pencarian untuk kueri data, Anda dapat menggunakan metode kueri berikut: kueri tepat, kueri terms, kueri match all, kueri match, kueri match phrase, kueri prefix, kueri range, kueri wildcard, kueri fuzzy, kueri Boolean, kueri geo, kueri nested, kueri vektor KNN, dan kueri exists. Anda dapat memilih metode kueri berdasarkan kebutuhan bisnis untuk mengkueri data dari berbagai dimensi.

    Anda dapat mengurutkan atau membagi halaman baris yang memenuhi kondisi kueri menggunakan fitur pengurutan dan paginasi. Untuk informasi lebih lanjut, lihat Melakukan pengurutan dan paginasi.

    Anda dapat menggunakan fitur collapse (distinct) untuk merangkum set hasil berdasarkan kolom tertentu. Dengan cara ini, data tipe tertentu hanya muncul sekali dalam hasil kueri. Untuk informasi lebih lanjut, lihat Collapse (distinct).

  • Untuk menganalisis data dalam tabel, Anda dapat menggunakan fitur agregasi operasi Search atau menjalankan pernyataan SQL. Sebagai contoh, Anda bisa mendapatkan nilai minimum, maksimum, jumlah total, dan jumlah baris. Untuk informasi lebih lanjut, lihat Agregasi dan Kueri SQL.

  • Jika ingin mendapatkan semua baris yang memenuhi kondisi kueri tanpa perlu mengurutkan baris, Anda dapat memanggil operasi ParallelScan dan ComputeSplits untuk menggunakan fitur pemindaian paralel. Untuk informasi lebih lanjut, lihat Pemindaian paralel.