All Products
Search
Document Center

Tablestore:Wildcard query

Last Updated:Sep 30, 2026

Kueri wildcard (WildcardQuery) melakukan pencarian fuzzy, mirip dengan operator LIKE dalam database.

Catatan

Untuk mengimplementasikan fungsionalitas NOT LIKE, gunakan WildcardQuery bersama parameter mustNotQueries dalam kueri boolean. Untuk informasi lebih lanjut, lihat Boolean query.

Ikhtisar

Kueri wildcard menggunakan karakter khusus untuk pencocokan pola, yang meningkatkan presisi dan efisiensi pencarian.

Saat menggunakan fitur WildcardQuery, Anda dapat menggunakan string kueri dengan karakter wildcard untuk mencocokkan data. Fitur ini mendukung tanda bintang (*) dan tanda tanya (?). Tanda bintang (*) merepresentasikan sekuens karakter apa pun, sedangkan tanda tanya (?) merepresentasikan satu karakter tunggal. String kueri dapat diawali dengan tanda bintang (*) atau tanda tanya (?). Sebagai contoh, kueri untuk table*e dapat mencocokkan tablestore.

WildcardQuery didukung untuk bidang dengan tipe data Keyword dan FuzzyKeyword.

  • Keyword: Tipe data string dasar. Performa kueri fuzzy, seperti kueri wildcard, pada bidang Keyword buruk untuk dataset besar dan semakin menurun seiring peningkatan volume data.

  • FuzzyKeyword: Tipe data yang dioptimalkan untuk kueri fuzzy seperti kueri wildcard. Memberikan performa unggul dan stabil yang tidak menurun secara signifikan seiring peningkatan ukuran dataset.

Search Index menyediakan tiga jenis kueri wildcard untuk mendukung berbagai kebutuhan pencocokan fuzzy. Untuk informasi lebih lanjut, lihat tabel berikut.

Catatan

Topik ini menjelaskan cara melakukan WildcardQuery pada bidang bertipe Keyword dan FuzzyKeyword. Untuk mempelajari implementasi kueri fuzzy pada bidang bertipe Text, lihat Wildcard query berbasis tokenisasi.

Tipe

Metode kueri

Keunggulan

Kekurangan

Keyword

WildcardQuery

Kompatibel dengan Elasticsearch.

Performa kueri menurun seiring peningkatan jumlah data terindeks.

FuzzyKeyword

WildcardQuery

Memberikan performa unggul dan stabil yang tidak menurun secara signifikan seiring peningkatan ukuran data.

Menyebabkan ekspansi data tertentu.

Text

MatchPhraseQuery

Mendukung pencocokan tanpa membedakan huruf besar/kecil.

Menyebabkan ekspansi data tertentu.

Catatan penggunaan

String kueri dalam WildcardQuery tidak boleh melebihi 32 karakter, baik untuk bidang Keyword maupun FuzzyKeyword.

API

Untuk melakukan kueri wildcard, panggil operasi Search atau parallel scan dan atur tipe kueri menjadi WildcardQuery.

Parameter

Parameter

Deskripsi

fieldName

Nama kolom yang akan dikueri.

value

String yang berisi wildcard, yang tidak boleh melebihi 32 karakter.

query

Tipe kueri. Atur parameter ini ke WildcardQuery.

getTotalCount

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

Mengembalikan jumlah total baris yang cocok dapat memengaruhi performa kueri.

weight

Bobot kueri, yaitu bilangan titik mengambang positif yang digunakan untuk pengurutan berbasis skor dalam pencarian teks lengkap. Bobot yang lebih tinggi memberikan skor lebih tinggi pada kolom dalam hasil kueri.

Parameter ini memengaruhi skor hasil yang dikembalikan tetapi tidak memengaruhi jumlah hasil yang dikembalikan.

tableName

Nama tabel data.

indexName

Nama Search Index.

columnsToGet

Menentukan kolom mana yang dikembalikan. Termasuk pengaturan returnAll dan columns.

Secara default, returnAll bernilai false, yang berarti tidak semua kolom dikembalikan. Dalam hal ini, Anda dapat menggunakan columns untuk menentukan kolom yang dikembalikan. Jika Anda tidak menentukan kolom apa pun, hanya kolom kunci primer yang dikembalikan.

Jika Anda mengatur returnAll ke true, semua kolom dikembalikan.

Cara menggunakan

Anda dapat melakukan kueri wildcard menggunakan Konsol Tablestore, alat baris perintah (CLI), atau SDK. Sebelum memulai, lakukan persiapan berikut:

Penting

Saat ini, WildcardQuery pada bidang FuzzyKeyword hanya didukung melalui SDK Tablestore.

Gunakan konsol

  1. Buka tab Index Management.

    1. Masuk ke Konsol Table Store.

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

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

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

  2. Pada tab Index Management, temukan Search Index target dan klik Manage Data di kolom Actions.

  3. Pada kotak dialog Search, konfigurasikan kueri.

    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 salah 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 tipe kueri untuk bidang indeks menjadi WildcardQuery dan masukkan nilai yang berisi wildcard.

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

Gunakan alat baris perintah

Anda dapat menjalankan perintah search di alat baris perintah (CLI) untuk mengkueri data menggunakan Search Index. Untuk informasi lebih lanjut, lihat Search Index.

Penting

CLI saat ini hanya mendukung WildcardQuery untuk tipe Keyword, bukan untuk tipe FuzzyKeyword.

  1. Jalankan perintah search untuk mengkueri data dalam tabel menggunakan Search Index bernama search_index, yang mengembalikan semua kolom terindeks.

    search -n search_index --return_all_indexed
  2. Masukkan kondisi kueri saat diminta. Contoh berikut menunjukkan formatnya:

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

Gunakan SDK

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

Catatan

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

Contoh berikut mengkueri nilai Keyword dalam bidang product_name yang sesuai dengan pola table*e. Kueri mengembalikan maksimal 10 baris dan jumlah total kecocokan.

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

WildcardQuery wildcardQuery = new WildcardQuery();
wildcardQuery.setFieldName("product_name");
wildcardQuery.setValue("table*e");

SearchQuery searchQuery = new SearchQuery();
searchQuery.setQuery(wildcardQuery);
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 lebih lanjut, lihat Metering dan penagihan Search Index.

FAQ

Topik terkait