Anda dapat menjalankan kueri awalan untuk menemukan data yang sesuai dengan awalan tertentu. Jika bidang yang digunakan untuk pencocokan kondisi awalan adalah tipe TEXT, nilai-nilai tersebut akan dipecah menjadi token. Sebuah baris memenuhi kondisi kueri jika setidaknya satu token mengandung awalan yang ditentukan.
Prasyarat
Sebuah instance OTSClient telah diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi instance OTSClient.
Sebuah tabel data telah dibuat dan data telah dimasukkan 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 |
NamaTabel | Nama dari tabel data. |
NamaIndeks | Nama dari indeks pencarian. |
Kueri | Jenis kueri. Atur jenis kueri ke PrefixQuery. |
NamaBidang | Nama dari bidang yang ingin Anda cocokkan. |
Awalan | Awalan. Jika bidang yang digunakan untuk mencocokkan kondisi awalan adalah bidang TEXT, nilai-nilai bidang tersebut akan dipecah menjadi token. Sebuah baris memenuhi kondisi kueri ketika setidaknya satu token mengandung awalan yang ditentukan. |
DapatkanJumlahTotal | Menentukan apakah akan mengembalikan jumlah total baris yang memenuhi kondisi kueri. Nilai default: false. Jika parameter ini diatur ke true, kinerja kueri akan terpengaruh. |
ColumnsToGet | Menentukan apakah akan mengembalikan jumlah total kolom yang memenuhi kondisi kueri. Anda dapat menentukan parameter ReturnAll dan Columns. Secara default, parameter ReturnAll diatur ke false, yang menunjukkan bahwa tidak semua kolom dikembalikan. Jika parameter ReturnAll diatur ke false, Anda dapat menggunakan parameter Columns untuk menentukan kolom yang ingin Anda kembalikan. Jika Anda tidak menentukan parameter Columns, hanya kolom kunci utama yang dikembalikan. Jika Anda mengatur ReturnAll ke true, semua kolom akan dikembalikan. |
Contoh kode
Berikut ini adalah contoh kode untuk menanyakan baris-baris yang nilainya Col_Keyword diawali dengan 'hangzhou':
/**
* Query the rows in which the value of the Col_Keyword column contains the "hangzhou" prefix in a table.
*/
func PrefixQuery(client *tablestore.TableStoreClient, tableName string, indexName string) {
searchRequest := &tablestore.SearchRequest{}
searchRequest.SetTableName(tableName)
searchRequest.SetIndexName(indexName)
query := &search.PrefixQuery{} // Set the query type to PrefixQuery.
query.FieldName = "Col_Keyword" // Specify the name of the field that you want to match.
query.Prefix = "hangzhou" // Specify the prefix that is used to match the value of the column.
searchQuery := search.NewSearchQuery()
searchQuery.SetQuery(query)
searchQuery.SetGetTotalCount(true)
searchRequest.SetSearchQuery(searchQuery)
// Return all columns in the rows that meet the query conditions.
searchRequest.SetColumnsToGet(&tablestore.ColumnsToGet{
ReturnAll:true,
})
searchResponse, err := client.Search(searchRequest)
if err != nil {
fmt.Printf("%#v", err)
return
}
fmt.Println("IsAllSuccess: ", searchResponse.IsAllSuccess) // Check whether all rows that meet the query conditions are returned.
fmt.Println("TotalCount: ", searchResponse.TotalCount) // Display the total number of rows that meet the query conditions instead of the number of returned rows.
fmt.Println("RowCount: ", len(searchResponse.Rows))
for _, row := range searchResponse.Rows {
jsonBody, err := json.Marshal(row)
if err != nil {
panic(err)
}
fmt.Println("Row: ", string(jsonBody))
}
}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 geo, kueri Boolean, kueri vektor KNN, kueri bersarang, dan kueri eksis. Metode kueri ini dapat digunakan untuk menanyakan 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.
Fitur collapse (distinct) dapat digunakan untuk merangkum set hasil berdasarkan kolom tertentu, sehingga data dari tipe yang ditentukan muncul hanya sekali dalam hasil kueri. Untuk informasi lebih lanjut, lihat Collapse (distinct).
Untuk menganalisis data dalam tabel data, Anda dapat menggunakan fitur agregasi dari operasi Search atau menjalankan pernyataan SQL. Misalnya, Anda dapat memperoleh nilai minimum, maksimum, jumlah, dan 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 Lakukan pemindaian paralel.