Saat melakukan kueri wildcard, Anda dapat menggunakan karakter asterisk (*) dan tanda tanya (?) dalam pencarian. Asterisk (*) mencocokkan string dengan panjang berapa pun di awal, tengah, atau akhir istilah pencarian. Tanda tanya (?) mencocokkan satu karakter pada posisi tertentu. String dapat dimulai dengan asterisk (*) atau tanda tanya (?). Sebagai contoh, jika Anda mencari "table*e", hasil seperti "tablestore" akan cocok.
Prasyarat
Instance OTSClient telah diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi instance 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 |
NamaTabel | Nama tabel data. |
NamaIndeks | Nama indeks pencarian. |
kueri | Jenis kueri. Atur jenis kueri ke WildcardQuery. |
NamaKolom | Nama kolom yang ingin Anda kueri. |
Nilai | String yang mengandung karakter wildcard. Panjang string tidak boleh melebihi 32 karakter. |
KolomUntukDiambil | Menentukan apakah akan mengembalikan semua kolom dari setiap baris yang cocok. Secara default, nilai ReturnAll adalah false, yang menentukan bahwa tidak semua kolom dikembalikan. Jika ReturnAll disetel ke false, Anda dapat menggunakan KolomUntukDiambil untuk menentukan kolom yang ingin Anda kembalikan. Jika Anda tidak menentukan kolom yang ingin Anda kembalikan, hanya kolom kunci utama yang dikembalikan. Jika Anda menyetel ReturnAll ke true, semua kolom dikembalikan. |
Contoh kode
Berikut adalah contoh kode untuk mencari baris di mana nilai kolom Col_Keyword cocok dengan "hang*u":
/**
* Cari tabel untuk baris di mana nilai kolom Col_Keyword cocok dengan "hang*u".
*/
func WildcardQuery(client *tablestore.TableStoreClient, tableName string, indexName string) {
searchRequest := &tablestore.SearchRequest{}
searchRequest.SetTableName(tableName)
searchRequest.SetIndexName(indexName)
query := &search.WildcardQuery{} // Setel jenis kueri ke WildcardQuery.
query.FieldName = "Col_Keyword"
query.Value = "hang*u"
searchQuery := search.NewSearchQuery()
searchQuery.SetQuery(query)
searchRequest.SetSearchQuery(searchQuery)
// Kembalikan semua kolom di baris yang memenuhi kondisi kueri.
searchRequest.SetColumnsToGet(&tablestore.ColumnsToGet{
ReturnAll:true,
})
searchResponse, err := client.Search(searchRequest)
if err != nil {
fmt.Printf("%#v", err)
return
}
fmt.Println("IsAllSuccess: ", searchResponse.IsAllSuccess) // Periksa apakah semua baris yang memenuhi kondisi kueri dikembalikan.
fmt.Println("TotalCount: ", searchResponse.TotalCount) // Tentukan bahwa jumlah total baris yang cocok bukan jumlah baris yang dikembalikan yang ditampilkan.
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))
}
}FAQ
Referensi
Saat menggunakan indeks pencarian untuk mengkueri data, Anda dapat menggunakan metode kueri berikut: kueri tepat, kueri terms, kueri match all, kueri match, kueri match phrase, kueri prefix, kueri rentang, kueri wildcard, kueri geo, kueri Boolean, kueri vektor KNN, kueri nested, dan kueri exists. Metode ini dapat digunakan 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.
Fitur collapse (distinct) dapat digunakan untuk merangkum set hasil berdasarkan kolom tertentu, sehingga data dari tipe yang sama muncul hanya sekali dalam hasil kueri. Untuk informasi lebih lanjut, lihat Collapse (distinct).
Untuk menganalisis data dalam tabel, Anda dapat menggunakan fitur agregasi operasi Search atau menjalankan pernyataan SQL. Contohnya, Anda dapat memperoleh nilai minimum, maksimum, jumlah, dan total jumlah 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.