Kueri match phrase mirip dengan kueri match, tetapi mengevaluasi posisi token. Suatu baris memenuhi kondisi kueri hanya jika urutan dan posisi token dalam baris tersebut sesuai dengan urutan dan posisi token dalam kata kunci. Jika metode tokenisasi untuk bidang yang ingin Anda kueri adalah tokenisasi fuzzy, kueri match phrase memiliki latensi lebih rendah dibandingkan kueri wildcard.
Skenario
Anda dapat menggunakan match phrase query untuk mencari data yang berisi frasa tertentu dengan susunan kata dalam urutan tertentu. Kueri ini dapat dikombinasikan dengan tokenisasi untuk melakukan pencarian teks penuh dalam berbagai skenario, seperti analisis data besar, pencarian konten, dan rekomendasi personalisasi. Misalnya, Anda dapat mengkueri kalimat yang berisi frasa tertentu dalam pencarian konten atau menemukan pesan yang tersusun dalam urutan tertentu dalam catatan obrolan.
Fitur
Kueri match phrase menggunakan pencocokan aproksimasi untuk mengkueri data dan mengevaluasi posisi token. Sebagai contoh, nilai dalam kolom bertipe TEXT pada suatu baris adalah "Hangzhou West Lake Scenic Area", sedangkan kata kunci yang Anda tentukan adalah "Hangzhou Scenic Area". Tablestore akan mengembalikan baris tersebut saat Anda menggunakan match query, tetapi tidak mengembalikannya saat menggunakan match phrase query. Hal ini karena jarak antara "Hangzhou" dan "Scenic Area" dalam kata kunci adalah 0, sedangkan dalam kolom baris tersebut jaraknya adalah 2 akibat adanya dua kata—"West" dan "Lake"—di antara keduanya.
Saat menggunakan match phrase query, Anda harus menentukan nama bidang yang ingin dikueri dan kata kuncinya. Suatu baris memenuhi kondisi kueri hanya jika urutan dan posisi token dalam baris tersebut sesuai dengan urutan dan posisi token dalam kata kunci.
Saat menjalankan match phrase query, Anda dapat menentukan bobot untuk bidang yang dikueri guna menghitung skor relevansi berbasis BM25, kolom yang ingin dikembalikan, apakah jumlah total baris yang memenuhi kondisi kueri dikembalikan, serta metode pengurutan hasil.
Operasi API
Anda dapat memanggil operasi Search atau ParallelScan dan mengatur jenis kueri menjadi MatchPhraseQuery untuk melakukan match phrase query.
Parameter
|
Parameter |
Deskripsi |
|
fieldName |
Nama bidang yang ingin dicocokkan. Anda dapat melakukan match phrase query pada bidang bertipe TEXT. |
|
text |
Kata kunci yang digunakan untuk mencocokkan nilai bidang saat melakukan match phrase query. Jika bidang yang ingin dicocokkan adalah bidang TEXT, kata kunci tersebut ditokenisasi menjadi beberapa token berdasarkan jenis alat analisis yang Anda tentukan saat membuat search index. Jika Anda tidak menentukan jenis alat analisis saat membuat search index, tokenisasi kata tunggal akan dilakukan. Untuk informasi selengkapnya, lihat Tokenisasi. Sebagai contoh, jika Anda melakukan match phrase query menggunakan frasa "this is", "..., this is tablestore" dan "this is a table" akan dikembalikan. "this table is ..." atau "is this a table" tidak akan dikembalikan. |
|
query |
Jenis kueri. Atur parameter query ke matchPhraseQuery. |
|
offset |
Posisi awal kueri saat ini. |
|
limit |
Jumlah maksimum baris yang ingin dikembalikan oleh kueri saat ini. Untuk hanya mengkueri jumlah baris yang memenuhi kondisi kueri tanpa data spesifik, atur parameter limit ke 0. |
|
getTotalCount |
Menentukan apakah jumlah total baris yang memenuhi kondisi kueri dikembalikan. Nilai default parameter ini adalah false, yang berarti jumlah total baris yang memenuhi kondisi kueri tidak dikembalikan. Jika Anda mengatur parameter ini ke true, performa kueri akan menurun. |
|
weight |
Bobot yang ingin diberikan pada bidang yang dikueri untuk menghitung skor relevansi kata kunci berbasis BM25. Parameter ini digunakan dalam skenario pencarian teks penuh. Jika Anda menentukan bobot lebih tinggi untuk bidang yang dikueri, skor relevansi kata kunci berbasis BM25 untuk bidang tersebut akan lebih tinggi. Nilai parameter ini adalah bilangan 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 search index. |
|
columnsToGet |
Menentukan apakah semua kolom dari setiap baris yang memenuhi kondisi kueri dikembalikan. Anda dapat menentukan field returnAll dan columns untuk parameter columnsToGet. Nilai default field returnAll adalah false, yang berarti tidak semua kolom dikembalikan. Dalam hal ini, Anda dapat menggunakan field columns untuk menentukan kolom yang ingin dikembalikan. Jika Anda tidak menentukan kolom yang ingin dikembalikan, hanya kolom kunci primer yang dikembalikan. Jika Anda mengatur field returnAll ke true, semua kolom akan dikembalikan. |
Catatan
Search Index hanya menyediakan skor relevansi BM25 dasar dan tidak mendukung model relevansi kustom.
Metode
Anda dapat menggunakan Konsol Tablestore, CLI Tablestore, atau SDK Tablestore untuk melakukan match phrase query.
Sebelum melakukan match phrase query, pastikan persiapan berikut telah dilakukan:
Gunakan Akun Alibaba Cloud atau RAM user dengan izin yang diperlukan untuk operasi Table Store. Untuk memberikan izin kepada RAM user, lihat Berikan izin kepada RAM user menggunakan kebijakan RAM.
Jika Anda menggunakan SDK atau tool command-line, buat AccessKey untuk Akun Alibaba Cloud atau RAM user Anda jika belum memilikinya.
Anda telah membuat tabel data.
Search Index telah dibuat untuk tabel data tersebut.
Jika Anda menggunakan SDK, inisialisasi Tablestore Client.
Jika Anda menggunakan tool command-line, unduh dan jalankan tool tersebut, lalu konfigurasikan koneksi ke instans Anda dan pilih tabel target. Untuk informasi selengkapnya, lihat Unduh tool command-line, Jalankan tool dan konfigurasikan informasi koneksi, dan Operasi tabel data.
Penagihan
Mengkueri data menggunakan Search Index mengonsumsi throughput baca. Untuk informasi selengkapnya, lihat Metering dan penagihan Search Index.
FAQ
Referensi
Search Index mendukung berbagai jenis kueri untuk kueri data multidimensi, termasuk kueri tepat, kueri istilah, Pencocokan semua kueri, kueri cocok, kueri frasa cocok, kueri rentang, kueri awalan, kueri akhiran, kueri wildcard, kueri wildcard berbasis token, kueri multi-bidang, kueri geografis, kueri bersarang, Pencarian vektor, dan kueri eksistensi.
Saat mengkueri data, Anda dapat mengurutkan dan melakukan paginasi set hasil atau melakukan collapsing (deduplikasi).
Untuk analisis data, seperti mencari nilai maksimum atau minimum, menghitung jumlah, atau menghitung baris, Anda dapat menggunakan fitur agregasi statistik atau kueri SQL.
Untuk mengekspor data dengan cepat tanpa memperhatikan urutan set hasil, Anda dapat menggunakan fitur Parallel Scan.