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.
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.
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:
Hanya SDK Tablestore yang dapat digunakan untuk menjalankan kueri wildcard pada data tipe FuzzyKeyword.
Anda memiliki akun Alibaba Cloud atau pengguna RAM dengan izin untuk menjalankan operasi pada Tablestore. Untuk informasi tentang cara memberikan izin, lihat Gunakan kebijakan RAM untuk memberikan izin kepada pengguna RAM.
Jika menggunakan SDK atau CLI Tablestore, pasangan AccessKey harus dibuat untuk akun Alibaba Cloud atau pengguna RAM Anda. Untuk informasi lebih lanjut, lihat Buat pasangan AccessKey.
Tabel data telah dibuat. Untuk informasi lebih lanjut, lihat Operasi pada tabel.
Indeks pencarian telah dibuat untuk tabel data. Untuk informasi lebih lanjut, lihat Buat indeks pencarian.
Jika menggunakan SDK Tablestore, instance OTSClient harus diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi klien Tablestore.
Jika menggunakan CLI Tablestore, unduh dan konfigurasikan CLI Tablestore serta informasi akses instance. Untuk informasi lebih lanjut, lihat Unduh CLI Tablestore, Mulai CLI Tablestore dan konfigurasikan informasi akses, dan Operasi pada tabel data.
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.