Anda dapat menggunakan kueri pencocokan untuk menanyakan data dalam tabel berdasarkan pencocokan perkiraan. Tablestore melakukan tokenisasi pada nilai di kolom TEXT dan kata kunci yang digunakan dalam kueri pencocokan, sesuai dengan tipe analisis yang ditentukan. Dengan metode ini, Tablestore dapat menjalankan kueri pencocokan berdasarkan token. Kami merekomendasikan penggunaan kueri frasa pencocokan untuk kolom TEXT yang menggunakan tokenisasi fuzzy, guna memastikan performa tinggi dalam kueri fuzzy.
Skenario
Anda dapat menggunakan kueri pencocokan untuk mencari data yang mengandung frase tertentu. Kombinasi kueri frasa pencocokan dan tokenisasi memungkinkan pencarian teks penuh dalam skenario seperti analisis big data, pencarian konten, manajemen pengetahuan, analisis media sosial, analisis log, sistem Q&A cerdas, dan tinjauan kepatuhan. Sebagai contoh, Anda dapat dengan cepat menemukan daftar produk yang judul, deskripsi, atau tag-nya mengandung kata kunci tertentu di platform e-commerce, serta mendeteksi pesan kesalahan atau operasi mencurigakan dalam log.
Fitur
Anda dapat menggunakan kueri pencocokan untuk menanyakan data dalam tabel berdasarkan pencocokan perkiraan. Misalnya, jika nilai di kolom judul bertipe TEXT adalah "Hangzhou West Lake Scenic Area" dalam satu baris dan menggunakan tokenisasi kata tunggal, baris tersebut akan memenuhi kondisi kueri jika kata kunci diatur menjadi "Lake Scenic".
Saat menggunakan kueri pencocokan, Anda harus menentukan nama kolom dan kata kunci. Jika setidaknya salah satu token dalam baris cocok dengan token dalam kata kunci, baris tersebut memenuhi kondisi kueri.
Saat menjalankan kueri pencocokan, Anda dapat menentukan jumlah minimum token yang cocok dalam nilai kolom, bobot untuk kolom yang ingin Anda tanyakan guna menghitung skor relevansi berbasis BM25, kolom-kolom yang ingin dikembalikan, apakah akan mengembalikan jumlah total baris yang memenuhi kondisi kueri, serta metode pengurutan hasil.
Operasi API
Anda dapat memanggil operasi Search atau ParallelScan dan mengatur jenis kueri ke MatchQuery untuk menjalankan kueri pencocokan.
Parameter
Parameter | Deskripsi |
fieldName | Nama kolom yang ingin Anda cocokkan. Kueri pencocokan berlaku untuk kolom TEXT. |
text | Kata kunci yang digunakan untuk mencocokkan nilai kolom saat Anda melakukan kueri pencocokan. Jika kolom yang ingin Anda cocokkan adalah kolom TEXT, kata kunci tersebut di-tokenisasi menjadi beberapa token berdasarkan tipe analisis yang Anda tentukan saat membuat indeks pencarian. Jika Anda tidak menentukan tipe analisis saat membuat indeks pencarian, dilakukan tokenisasi kata tunggal. Sebagai contoh, jika kolom yang ingin Anda cocokkan adalah kolom TEXT, Anda mengatur tipe analisis ke tokenisasi kata tunggal, dan Anda menggunakan "this is" sebagai kata kunci pencarian, Anda dapat memperoleh hasil kueri seperti "..., this is tablestore", "is this tablestore", "tablestore is cool", "this", dan "is". |
query | Tipe kueri. Atur parameter query ke matchQuery. |
offset | Posisi dari mana kueri saat ini dimulai. |
limit | Jumlah maksimum baris yang ingin Anda kembalikan dalam kueri saat ini. Untuk hanya menanyakan jumlah baris yang memenuhi kondisi kueri tanpa data spesifik, atur parameter limit ke 0. |
minimumShouldMatch | Jumlah minimum token yang cocok yang terkandung dalam nilai kolom. Baris dikembalikan hanya jika nilai kolom yang ditentukan oleh parameter fieldName dalam baris tersebut mengandung setidaknya jumlah minimum token yang cocok. Catatan Anda harus menggunakan parameter minimumShouldMatch bersama dengan operator logika OR. |
operator | Operator logika. Secara default, OR digunakan sebagai operator logika, yang menentukan bahwa baris memenuhi kondisi kueri ketika nilai kolom mengandung setidaknya jumlah minimum token yang cocok. Jika Anda mengatur parameter operator ke AND, baris memenuhi kondisi kueri hanya jika nilai kolom mengandung semua token yang cocok. |
getTotalCount | Menentukan apakah akan mengembalikan jumlah total baris yang memenuhi kondisi kueri. Nilai default dari parameter ini adalah false, yang menentukan bahwa jumlah total baris yang memenuhi kondisi kueri tidak dikembalikan. Jika Anda mengatur parameter ini ke true, performa kueri akan berkurang. |
weight | Bobot yang ingin Anda tetapkan pada kolom yang ingin Anda tanyakan untuk menghitung skor relevansi kata kunci berbasis BM25. Parameter ini digunakan dalam skenario pencarian teks penuh. Jika Anda menentukan bobot lebih tinggi untuk kolom yang ingin Anda tanyakan, skor relevansi kata kunci berbasis BM25 untuk kolom tersebut lebih tinggi. Nilai dari parameter ini adalah angka floating point positif. Parameter ini tidak memengaruhi jumlah baris yang dikembalikan. Namun, parameter ini memengaruhi skor relevansi kata kunci berbasis BM25 dari hasil kueri. |
tableName | Nama tabel data. |
indexName | Nama indeks pencarian. |
columnsToGet | Menentukan apakah akan mengembalikan semua kolom dari setiap baris yang memenuhi kondisi kueri. Anda dapat menentukan bidang returnAll dan columns untuk parameter columnsToGet. Nilai default dari 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 ke true, semua kolom dikembalikan. |
Catatan Penggunaan
Anda dapat menggunakan indeks pencarian untuk mengurutkan hasil kueri berdasarkan skor relevansi berbasis BM25. Skor relevansi kustom tidak dapat digunakan untuk mengurutkan hasil kueri.
Metode
Anda dapat menggunakan konsol Tablestore, CLI Tablestore, atau SDK Tablestore untuk menjalankan kueri pencocokan. Pastikan langkah-langkah persiapan berikut telah dilakukan:
Anda memiliki akun Alibaba Cloud atau pengguna RAM dengan izin untuk menjalankan operasi pada Tablestore. Untuk informasi lebih lanjut tentang cara memberikan izin operasi Tablestore kepada pengguna RAM, lihat Gunakan kebijakan RAM untuk memberikan izin kepada pengguna RAM.
Jika Anda ingin menggunakan SDK Tablestore atau CLI Tablestore untuk menjalankan kueri, 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 Anda ingin menggunakan SDK Tablestore untuk menjalankan kueri, instance OTSClient harus diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi klien Tablestore.
Jika Anda ingin menggunakan CLI Tablestore untuk menjalankan kueri, CLI Tablestore harus diunduh dan dimulai, serta informasi instans dan tabel data harus dikonfigurasikan. 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 menanyakan data, Anda dikenakan biaya untuk throughput baca yang dikonsumsi. Untuk informasi lebih lanjut, lihat Item yang dapat ditagih dari indeks pencarian.
FAQ
Referensi
Saat menggunakan indeks pencarian untuk menanyakan data, Anda dapat menggunakan metode kueri berikut: kueri tepat, kueri terms, kueri cocok semua, kueri pencocokan, kueri frasa pencocokan, kueri awalan, kueri rentang, kueri wildcard, kueri fuzzy, kueri Boolean, kueri geo, kueri bersarang, kueri vektor KNN, dan kueri eksistensi. Anda dapat memilih metode kueri berdasarkan kebutuhan bisnis untuk menanyakan data dari berbagai dimensi.
Anda dapat mengurutkan atau membagi halaman baris yang memenuhi kondisi kueri menggunakan fitur pengurutan dan pembagian halaman. Untuk informasi lebih lanjut, lihat Lakukan pengurutan dan pembagian halaman.
Anda dapat menggunakan fitur collapse (distinct) untuk menggabungkan set hasil berdasarkan kolom tertentu. Dengan cara ini, data dari tipe tertentu hanya muncul sekali dalam hasil kueri. Untuk informasi lebih lanjut, lihat Collapse (distinct).
Jika Anda ingin menganalisis data dalam tabel data, Anda dapat menggunakan fitur agregasi dari operasi Search atau menjalankan pernyataan SQL. Sebagai contoh, Anda dapat memperoleh nilai minimum dan maksimum, jumlah total, serta jumlah total baris. Untuk informasi lebih lanjut, lihat Agregasi dan Kueri SQL.
Jika Anda 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.