Kueri frasa cocok serupa dengan kueri cocok, tetapi kueri frasa cocok mengevaluasi posisi token. Sebuah baris memenuhi kondisi kueri hanya jika urutan dan posisi token dalam baris tersebut sesuai dengan urutan dan posisi token pada kata kunci. Jika metode tokenisasi untuk bidang yang akan dikueri menggunakan tokenisasi fuzzy, kueri frasa cocok memiliki latensi lebih rendah dibandingkan dengan kueri wildcard.
Prasyarat
Instance OTSClient telah diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi instance OTSClient.
Tabel data telah dibuat dan data telah ditulis ke dalam tabel tersebut. Untuk informasi lebih lanjut, lihat Buat tabel data dan Tulis data.
Indeks pencarian telah dibuat untuk tabel data. Untuk informasi lebih lanjut, lihat Buat indeks pencarian.
Parameter
Parameter | Deskripsi |
tableName | Nama tabel data. |
indexName | Nama indeks pencarian. |
offset | Posisi dari mana kueri dimulai. |
limit | Jumlah maksimum baris yang ingin Anda dapatkan dari kueri. Untuk hanya mengkueri jumlah baris yang memenuhi kondisi kueri tanpa mengkueri data spesifik dari baris, atur parameter limit ke 0. |
queryType | Tipe kueri. Untuk menggunakan kueri frasa cocok, atur parameter ini ke TableStore.QueryType.MATCH_PHRASE_QUERY. |
fieldName | Nama bidang yang ingin Anda cocokkan. Kueri frasa cocok berlaku untuk bidang TEXT. |
text | Kata kunci yang digunakan untuk mencocokkan nilai bidang saat Anda melakukan kueri frasa cocok. Jika bidang yang ingin Anda cocokkan adalah bidang TEXT, kata kunci akan di-tokenisasi menjadi beberapa token berdasarkan tipe analisis yang Anda tentukan saat membuat indeks pencarian. Secara default, tokenisasi satu kata dilakukan jika Anda tidak menentukan tipe analisis saat membuat indeks pencarian. Untuk informasi lebih lanjut, lihat Tokenisasi. Sebagai contoh, kueri frasa cocok berdasarkan frase "this is" cocok dengan "..., this is tablestore" dan "this is a table" dan tidak cocok dengan nilai "this table is ..." atau "is this a table". |
getTotalCount | Menentukan apakah akan mengembalikan jumlah total baris yang memenuhi kondisi kueri. Nilai default: false. Jika parameter ini disetel ke true, performa kueri akan terpengaruh. |
columnToGet | Menentukan apakah akan mengembalikan semua kolom dari setiap baris yang memenuhi kondisi kueri. Anda dapat mengonfigurasi returnType dan returnNames untuk parameter ini.
|
Contoh
Berikut adalah kode sampel yang menunjukkan cara melakukan kueri fase cocok untuk menemukan baris dengan nilai Col_Text yang sesuai dengan fase "hangzhou shanghai":
/**
* Cari tabel untuk baris di mana nilai Col_Text cocok dengan seluruh fase "hangzhou shanghai" secara berurutan.
* Tablestore mengembalikan jumlah baris yang cocok dengan frase dan sebagian dari baris yang cocok dalam kueri ini.
*/
client.search({
tableName: TABLE_NAME,
indexName: INDEX_NAME,
searchQuery: {
offset: 0,
limit: 10, // Untuk hanya mengkueri jumlah baris yang memenuhi kondisi kueri tanpa mengembalikan data spesifik, atur parameter limit ke 0.
query: {// Atur tipe kueri ke TableStore.QueryType.MATCH_PHRASE_QUERY.
queryType: TableStore.QueryType.MATCH_PHRASE_QUERY,
query: {
fieldName: "Col_Text", // Tentukan kolom yang ingin Anda cocokkan.
text: "hangzhou shanghai" // Tentukan frase yang ingin Anda cocokkan.
}
},
getTotalCount: true // Tentukan apakah akan mengembalikan jumlah total baris yang memenuhi kondisi kueri. Nilai default: false.
},
columnToGet: { // Tentukan kolom yang ingin Anda kembalikan. Anda dapat menyetel parameter ini ke RETURN_SPECIFIED untuk mengembalikan kolom tertentu, RETURN_ALL untuk mengembalikan semua kolom, RETURN_ALL_FROM_INDEX untuk mengembalikan semua kolom dalam indeks pencarian, atau RETURN_NONE untuk mengembalikan hanya kolom kunci utama.
returnType: TableStore.ColumnReturnType.RETURN_ALL
}
}, function (err, data) {
if (err) {
console.log('error:', err);
return;
}
console.log('success:', JSON.stringify(data, null, 2));
});FAQ
Referensi
Referensi
Indeks pencarian mendukung tipe kueri berikut: kueri tepat, kueri terms, kueri cocok semua, kueri cocok, kueri frasa cocok, kueri awalan, kueri rentang, kueri wildcard, kueri Boolean, kueri geo, kueri bersarang, kueri vektor, dan kueri exists. Pilih tipe kueri yang sesuai untuk mengkueri data berdasarkan kebutuhan bisnis Anda.
Jika Anda ingin mengurutkan atau membagi halaman baris yang memenuhi kondisi kueri, gunakan fitur pengurutan dan paging. Untuk informasi lebih lanjut, lihat Pengurutan dan paging.
Untuk menggabungkan set hasil berdasarkan kolom tertentu, Anda dapat menggunakan fitur collapse (distinct). Dengan fitur ini, data dari tipe yang ditentukan akan muncul hanya sekali dalam hasil kueri. Untuk informasi lebih lanjut, lihat Collapse (distinct).
Untuk menganalisis data dalam tabel, seperti mendapatkan nilai ekstrem, jumlah total, dan total baris, Anda dapat melakukan operasi agregasi atau menjalankan pernyataan SQL. Untuk informasi lebih lanjut, lihat Agregasi dan Kueri SQL.
Jika Anda ingin segera mendapatkan semua baris yang memenuhi kondisi kueri tanpa perlu mengurutkan baris, Anda dapat menggunakan operasi ParallelScan dan ComputeSplits untuk memanfaatkan fitur pemindaian paralel. Untuk informasi lebih lanjut, lihat Pemindaian paralel.