Kueri frasa cocok mirip dengan kueri cocok, tetapi kueri frasa cocok mengevaluasi posisi token. Baris memenuhi kondisi kueri hanya jika urutan dan posisi token dalam baris sesuai dengan urutan dan posisi token dalam kata kunci. Jika metode tokenisasi kolom yang ingin Anda kueri adalah tokenisasi fuzzy, kueri frasa cocok memiliki latensi lebih rendah dibandingkan dengan kueri wildcard.
Prasyarat
Instansi OTSClient telah diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi Instansi OTSClient.
Tabel data telah dibuat dan data telah ditulis ke 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 |
FieldName | Nama kolom yang ingin Anda kueri. Kolom dapat bertipe TEXT. |
Text | Kata kunci yang digunakan untuk mencocokkan nilai kolom saat Anda melakukan kueri frasa cocok. Jika kolom yang ingin Anda kueri bertipe TEXT, kata kunci dipecah 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. Sebagai contoh, jika Anda melakukan kueri frasa cocok menggunakan frase "ini adalah", hasil kueri seperti "..., ini adalah tablestore" dan "ini adalah sebuah tabel" akan dikembalikan. "tabel ini adalah ..." dan "apakah ini sebuah tabel" tidak dikembalikan. |
Query | Tipe kueri. Atur parameter ini ke MatchPhraseQuery. |
TableName | Nama tabel data. |
IndexName | Nama indeks pencarian. |
GetTotalCount | 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, performa 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 ReturnAll adalah false, yang menentukan bahwa tidak semua kolom dikembalikan. Anda dapat menggunakan salah satu dari 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 mengkueri baris di mana nilai kolom Text_type_col cocok dengan "Tablestore SearchIndex" dalam tabel data.
/// <summary>
/// Query the rows in which the value of the Text_type_col column matches "Tablestore SearchIndex" in a data table and return the total number of rows that meet the query conditions.
/// </summary>
/// <param name="otsClient"></param>
public static void MatchPhraseQuery(OTSClient otsClient)
{
var searchQuery = new SearchQuery();
// Set the query type to MatchPhraseQuery.
searchQuery.Query = new MatchPhraseQuery("Text_type_col", "Tablestore SearchIndex");
// Return the total number of rows that meet the query conditions.
searchQuery.GetTotalCount = true;
var request = new SearchRequest(TableName, IndexName, searchQuery);
// You can configure the ColumnsToGet parameter to specify the columns that you want to return, specify that all columns are returned, or specify that all columns in the search index are returned. If you do not configure this parameter, only the primary key columns are returned.
request.ColumnsToGet = new ColumnsToGet()
{
// Return all columns in the search index.
ReturnAllFromIndex = true
// Return the columns that you specify.
//Columns = new List<string>() { Long_type_col, Text_type_col, Keyword_type_col }
// Return all columns in the rows that meet the query conditions.
//ReturnAll = true
};
var response = otsClient.Search(request);
Console.WriteLine("Total Count:" + response.TotalCount); // Display the total number of rows that meet the query conditions instead of the number of returned rows.
}FAQ
Referensi
Saat menggunakan indeks pencarian untuk mengkueri data, Anda dapat menggunakan metode kueri berikut: term query, terms query, match all query, match query, match phrase query, prefix query, range query, wildcard query, Boolean query, geo query, nested query, dan exists query. Anda dapat menggunakan metode kueri yang berbeda untuk mengkueri data dari berbagai dimensi sesuai kebutuhan bisnis Anda.
Anda dapat mengurutkan atau membagi halaman baris yang memenuhi kondisi kueri menggunakan fitur Pengurutan dan paging. Untuk informasi lebih lanjut, lihat Pengurutan dan Paging.
Anda dapat menggunakan fitur collapse (distinct) untuk merangkum 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 dapat memperoleh nilai minimum dan maksimum, jumlah, serta total baris. Untuk informasi lebih lanjut, lihat Agregasi dan SQL Query.
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.