Anda dapat melakukan kueri rentang untuk menanyakan data dalam rentang tertentu. Jika tipe kolom adalah TEXT, nilai-nilai kolom tersebut akan dipecah menjadi token. Sebuah baris memenuhi kondisi kueri jika setidaknya salah satu token dalam baris cocok dengan rentang kueri.
Prasyarat
Sebuah instance OTSClient telah diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi instance OTSClient.
Sebuah 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 tersebut. Untuk informasi lebih lanjut, lihat Buat indeks pencarian.
Parameter
Parameter | Deskripsi |
NamaTabel | Nama dari tabel data. |
NamaIndeks | Nama dari indeks pencarian. |
Kueri | Tipe kueri. Atur tipe kueri ke RangeQuery. |
NamaKolom | Nama kolom yang ingin Anda cocokkan. |
Dari | Nilai dari mana kueri dimulai. Anda dapat menggunakan GT atau GTE untuk menentukan rentang. GT menunjukkan bahwa nilai dalam rentang lebih besar dari nilai yang ditentukan. GTE menunjukkan bahwa nilai dalam rentang lebih besar dari atau sama dengan nilai yang ditentukan. |
Sampai | Nilai hingga mana kueri berakhir. Anda dapat menggunakan LT atau LTE untuk menentukan rentang. LT menunjukkan bahwa nilai dalam rentang lebih kecil dari nilai yang ditentukan. LTE menunjukkan bahwa nilai dalam rentang lebih kecil dari atau sama dengan nilai yang ditentukan. |
TermasukBawah | Menentukan apakah akan menyertakan nilai parameter Dari dalam respons. Nilai parameter ini bertipe BOOLEAN. |
TermasukAtas | Menentukan apakah akan menyertakan nilai parameter Sampai dalam respons. Nilai parameter ini bertipe BOOLEAN. |
Urutan | Metode pengurutan. Untuk informasi lebih lanjut, lihat Melakukan pengurutan dan paging. |
KolomUntukDiambil | Menentukan apakah akan mengembalikan semua kolom dari setiap baris yang memenuhi kondisi kueri. Anda dapat menentukan parameter ReturnAll dan Kolom. Secara default, parameter ReturnAll disetel ke false, yang menunjukkan bahwa tidak semua kolom dikembalikan. Jika parameter ReturnAll disetel ke false, Anda dapat menggunakan parameter Kolom untuk menentukan kolom yang ingin Anda kembalikan. Jika Anda tidak menentukan parameter Kolom, hanya kolom kunci utama yang dikembalikan. Jika Anda menyetel ReturnAll ke true, semua kolom dikembalikan. |
Contoh kode
Berikut ini adalah contoh kode yang menunjukkan cara menanyakan baris di mana nilai Col_Long lebih besar dari 3. Tablestore mengurutkan hasil kueri berdasarkan nilai kolom Col_Long secara menurun.
/**
* Query the rows in which the value of the Col_Long column is greater than 3 in a table. Tablestore sorts the query results based on the value of the Col_Long column in descending order.
*/
func RangeQuery(client *tablestore.TableStoreClient, tableName string, indexName string) {
searchRequest := &tablestore.SearchRequest{}
searchRequest.SetTableName(tableName)
searchRequest.SetIndexName(indexName)
searchQuery := search.NewSearchQuery()
rangeQuery := &search.RangeQuery{} // Set the query type to RangeQuery.
rangeQuery.FieldName = "Col_Long" // Specify the name of the column that you want to query.
rangeQuery.GT(3) // Specify the range of the column value, which is greater than 3.
searchQuery.SetQuery(rangeQuery)
// Sort the query results based on the value of the Col_Long column in descending order.
searchQuery.SetSort(&search.Sort{
[]search.Sorter{
&search.FieldSort{
FieldName: "Col_Long",
Order: search.SortOrder_DESC.Enum(),
},
},
})
searchRequest.SetSearchQuery(searchQuery)
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("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 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. Anda dapat menggunakan metode kueri yang disediakan oleh indeks pencarian 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 merangkum set hasil berdasarkan kolom tertentu. Dengan cara ini, data dari tipe tertentu 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. Misalnya, Anda dapat memperoleh nilai minimum dan 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 Melakukan pemindaian paralel.