Kueri cocok dapat digunakan untuk menanyakan data dalam tabel berdasarkan kecocokan perkiraan. Tablestore melakukan tokenisasi nilai kolom bertipe TEXT dan kata kunci yang Anda gunakan untuk menjalankan kueri cocok berdasarkan analisis yang telah ditentukan. Oleh karena itu, Tablestore dapat menjalankan kueri cocok berdasarkan token. Kami merekomendasikan agar Anda memanggil operasi MatchPhraseQuery untuk menjalankan kueri frasa cocok pada kolom di mana tokenisasi kabur digunakan, guna memastikan kinerja tinggi dalam kueri kabur.
Prasyarat
Instansi OTSClient harus diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi Instansi OTSClient.
Tabel data harus dibuat dan data harus ditulis ke dalam tabel tersebut. Untuk informasi lebih lanjut, lihat Buat Tabel Data dan Tulis Data.
Indeks pencarian harus dibuat untuk tabel data. Untuk informasi lebih lanjut, lihat Buat Indeks Pencarian.
Parameter
Parameter | Deskripsi |
NamaKolom | Nama kolom yang ingin Anda tanyakan. Kolom tersebut dapat bertipe TEXT. |
Teks | Kata kunci yang digunakan untuk mencocokkan nilai kolom saat Anda melakukan kueri cocok. Jika kolom yang ingin Anda tanyakan bertipe TEXT, kata kunci akan di-tokenisasi menjadi beberapa token berdasarkan jenis analisis yang Anda tentukan saat membuat indeks pencarian. Secara default, tokenisasi satu kata dilakukan jika Anda tidak menentukan jenis analisis saat membuat indeks pencarian. Sebagai contoh, jika kolom yang ingin Anda tanyakan bertipe TEXT dan jenis analisis adalah tokenisasi satu kata, ketika Anda melakukan kueri cocok menggunakan frase "ini adalah", hasil kueri seperti "..., ini adalah tablestore", "adalah ini tablestore", "tablestore adalah keren", "ini", dan "adalah" akan dikembalikan. |
Kueri | Jenis kueri. Atur parameter ini ke MatchQuery. |
Operator | Operator logis. Secara default, OR digunakan sebagai operator logis, yang menentukan bahwa baris memenuhi kondisi kueri ketika nilai kolom mengandung setidaknya jumlah minimum token. Jika Anda mengatur operator ke AND, baris hanya memenuhi kondisi kueri ketika nilai kolom mengandung semua token. |
MinimumShouldMatch | Jumlah minimum token yang cocok terkandung dalam nilai kolom. Baris hanya dikembalikan ketika nilai kolom yang ditanyakan dalam baris mengandung setidaknya jumlah minimum token yang cocok. Catatan Parameter MinimumShouldMatch harus digunakan bersama dengan operator logis OR. |
NamaTabel | Nama tabel data. |
NamaIndeks | Nama indeks pencarian. |
DapatkanJumlahTotal | Menentukan apakah akan mengembalikan jumlah total baris yang memenuhi kondisi kueri. Nilai default: false, yang menunjukkan bahwa jumlah total baris yang memenuhi kondisi kueri tidak dikembalikan. Jika Anda mengatur parameter ini ke true, kinerja kueri akan terpengaruh. |
ColumnsToGet | Menentukan apakah akan mengembalikan semua kolom dalam baris yang memenuhi kondisi kueri. Anda dapat menentukan parameter ReturnAll, Columns, dan ReturnAllFromIndex. Nilai default dari ReturnAll adalah false, yang menentukan bahwa tidak semua kolom dikembalikan. Anda dapat menggunakan salah satu metode berikut untuk menentukan kolom yang ingin Anda kembalikan. Jika Anda tidak menggunakan metode berikut untuk menentukan kolom yang ingin Anda kembalikan, hanya kolom kunci utama yang dikembalikan.
Jika Anda mengatur ReturnAll ke true, semua kolom dikembalikan. |
Contoh
Berikut ini adalah kode sampel yang menunjukkan cara menanyakan baris di mana nilai kolom Text_type_col cocok dengan "SearchIndex" dalam tabel data.
/// <summary>
/// Tanyakan baris di mana nilai kolom Text_type_col cocok dengan "SearchIndex" dalam sebuah tabel dan kembalikan jumlah total baris yang memenuhi kondisi kueri.
/// </summary>
/// <param name="otsClient"></param>
public static void MatchQuery(OTSClient otsClient)
{
var searchQuery = new SearchQuery();
// Atur jenis kueri ke MatchQuery, kolom yang ingin Anda cocokkan ke Text_type_col, dan kata kunci ke "SearchIndex".
searchQuery.Query = new MatchQuery("Text_type_col", "SearchIndex");
// Kembalikan jumlah total baris yang memenuhi kondisi kueri.
searchQuery.GetTotalCount = true;
var request = new SearchRequest(TableName, IndexName, searchQuery);
// Anda dapat mengonfigurasi parameter ColumnsToGet untuk menentukan kolom yang ingin Anda kembalikan, tentukan bahwa semua kolom dikembalikan, atau tentukan bahwa semua kolom dalam indeks pencarian dikembalikan. Jika Anda tidak mengonfigurasi parameter ini, hanya kolom kunci utama yang dikembalikan.
request.ColumnsToGet = new ColumnsToGet()
{
// Kembalikan semua kolom dalam indeks pencarian.
ReturnAllFromIndex = true
// Kembalikan kolom yang Anda tentukan.
//Columns = new List<string>() { Long_type_col, Text_type_col, Keyword_type_col }
// Kembalikan semua kolom dalam baris yang memenuhi kondisi kueri.
//ReturnAll = true
};
var response = otsClient.Search(request);
Console.WriteLine("Total Count:" + response.TotalCount); // Tampilkan jumlah total baris yang memenuhi kondisi kueri bukan jumlah baris yang dikembalikan.
}Pertanyaan Umum
Referensi
Saat menggunakan indeks pencarian untuk menanyakan data, Anda dapat menggunakan metode 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 nested, dan kueri exists. Anda dapat menggunakan metode kueri yang berbeda untuk menanyakan data dari berbagai dimensi sesuai dengan kebutuhan bisnis Anda.
Anda dapat mengurutkan atau membagi halaman baris yang memenuhi kondisi kueri dengan menggunakan fitur Pengurutan dan paging. Untuk informasi lebih lanjut, lihat Pengurutan dan Paging.
Anda dapat menggunakan fitur collapse (distinct) untuk meruntuhkan set hasil berdasarkan kolom tertentu. Dengan cara ini, data dari tipe yang ditentukan muncul hanya sekali dalam hasil kueri. Untuk informasi lebih lanjut, lihat Collapse (distinct).
Jika Anda ingin menganalisis data dalam tabel data, Anda dapat menggunakan fitur agregasi operasi Search atau menjalankan pernyataan SQL. Sebagai contoh, Anda bisa mendapatkan nilai minimum dan maksimum, jumlah, dan 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.