Kueri kotak pembatas geografis memungkinkan Anda menentukan area geografis persegi panjang sebagai kondisi kueri. Tablestore mengembalikan baris di mana nilai kolom yang ditentukan berada dalam area geografis tersebut.
Parameter
Parameter | Deskripsi |
fieldName | Nama kolom yang ingin Anda kueri. Nilai parameter ini bertipe data GEOPOINT. |
topLeft | Pasangan koordinat pojok kiri atas area geografis persegi panjang. |
bottomRight | Pasangan koordinat pojok kanan bawah area geografis persegi panjang. Area geografis persegi panjang dapat ditentukan dengan menggunakan pojok kiri atas dan pojok kanan bawah. Formatnya adalah latitude,longitude. Nilai valid untuk latitude: [-90,+90]. Nilai valid untuk longitude: [-180,+180]. Contoh: 35.8,-45.91. |
query | Pernyataan kueri untuk indeks pencarian. Setel parameter ini ke GeoBoundingBoxQuery. |
getTotalCount | Menentukan apakah akan mengembalikan jumlah total baris yang memenuhi kondisi kueri. Nilai default dari parameter ini adalah false, yang menentukan bahwa jumlah total baris yang memenuhi kondisi kueri tidak dikembalikan. Jika Anda menyetel parameter ini ke true, performa kueri akan terpengaruh. |
tableName | Nama tabel data. |
indexName | Nama indeks pencarian. |
columnsToGet | Menentukan apakah akan mengembalikan semua kolom setiap baris yang memenuhi kondisi kueri. Anda dapat menetapkan bidang returnAll dan columns untuk parameter ini. Nilai default dari bidang returnAll adalah false, yang menentukan bahwa tidak semua kolom dikembalikan. Dalam hal ini, Anda dapat menggunakan bidang columns 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 bidang returnAll ke true, semua kolom dikembalikan. |
Metode
Anda dapat menjalankan kueri kotak pembatas geografis menggunakan konsol Tablestore, CLI Tablestore, dan SDK Tablestore. Sebelum menjalankan kueri, pastikan prasyarat berikut terpenuhi:
Anda memiliki akun Alibaba Cloud atau pengguna RAM dengan izin untuk menjalankan operasi pada Tablestore. Untuk informasi tentang cara memberikan izin operasi Tablestore kepada pengguna RAM, lihat Gunakan Kebijakan RAM untuk Memberikan Izin kepada Pengguna RAM.
Jika Anda ingin menggunakan SDK Tablestore atau CLI Tablestore untuk menjalankan kueri, pasangan AccessKey telah dibuat untuk akun Alibaba Cloud atau pengguna RAM Anda. Untuk informasi lebih lanjut, lihat Buat Pasangan AccessKey.
Tabel data telah dibuat. Untuk informasi lebih lanjut, lihat Operasi pada Tabel.
Indeks pencarian telah dibuat untuk tabel data. Untuk informasi lebih lanjut, lihat Buat Indeks Pencarian.
Jika Anda ingin menggunakan SDK Tablestore untuk menjalankan kueri, instance OTSClient telah diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi Klien Tablestore.
Jika Anda ingin menggunakan CLI Tablestore untuk menjalankan kueri, CLI Tablestore telah diunduh dan dimulai, serta informasi tentang instance yang ingin Anda akses dan tabel data telah dikonfigurasi. Untuk informasi lebih lanjut, lihat Unduh CLI Tablestore, Mulai CLI Tablestore dan Konfigurasikan Informasi Akses, dan Operasi pada Tabel Data.
Gunakan Konsol Tablestore
Pergi ke tab Indexes.
Masuk ke konsol Tablestore.
Di bilah navigasi atas, pilih grup sumber daya dan wilayah.
Di halaman Overview, klik nama instance yang ingin Anda kelola atau klik Manage Instance di kolom Actions instance.
Di tab Tables dari tab Instance Details, klik nama tabel data atau klik Indexes di kolom Tindakan tabel data.
Di tab Indexes, temukan indeks pencarian yang ingin Anda gunakan untuk mengkueri data dan klik Manage Data di kolom Actions.
Di kotak dialog Search, konfigurasikan parameter kueri.
Secara default, sistem mengembalikan semua kolom atribut. Untuk mengembalikan kolom atribut tertentu, matikan All Columns dan tentukan kolom atribut yang ingin Anda kembalikan. Pisahkan beberapa kolom atribut dengan koma (,).
Catatan Secara default, sistem mengembalikan semua kolom kunci utama tabel data.
Pilih operator logika And, Or, atau Not berdasarkan kebutuhan bisnis Anda.
Jika Anda memilih operator logika And, data yang memenuhi kondisi kueri akan dikembalikan. Jika Anda memilih operator Or dan menentukan satu kondisi kueri, data yang memenuhi kondisi kueri akan dikembalikan. Jika Anda memilih operator logika Or dan menentukan beberapa kondisi kueri, data yang memenuhi salah satu kondisi kueri akan dikembalikan. Jika Anda memilih operator logika Not, data yang tidak memenuhi kondisi kueri akan dikembalikan.
Pilih bidang indeks bertipe data GEOPOINT dan klik Add.
Setel tipe kueri bidang indeks ke GeoBoundingBoxQuery dan masukkan serta pilih pasangan koordinat pojok kiri atas dan pasangan koordinat pojok kanan bawah area geografis persegi panjang.
Secara default, fitur pengurutan dinonaktifkan. Jika Anda ingin mengurutkan hasil kueri berdasarkan bidang tertentu, aktifkan Sort dan tentukan bidang berdasarkan mana Anda ingin mengurutkan hasil kueri dan urutan pengurutan.
Secara default, fitur agregasi dinonaktifkan. Jika Anda ingin mengumpulkan statistik pada bidang tertentu, aktifkan Collect Statistics, tentukan bidang berdasarkan mana Anda ingin mengumpulkan statistik, dan kemudian konfigurasikan informasi yang diperlukan untuk mengumpulkan statistik.
Klik OK.
Data yang memenuhi kondisi kueri ditampilkan dalam urutan tertentu di tab Indexes.
Gunakan CLI Tablestore
Anda dapat menggunakan CLI Tablestore untuk menjalankan perintah search untuk mengkueri data menggunakan indeks pencarian. Untuk informasi lebih lanjut, lihat Indeks Pencarian.
Jalankan perintah search untuk menggunakan indeks pencarian search_index untuk mengkueri data dan mengembalikan semua kolom terindeks setiap baris yang memenuhi kondisi kueri.
search -n search_index --return_all_indexed
Berikut ini adalah contoh kode sampel yang menunjukkan cara memasukkan kondisi kueri seperti yang dipromosikan oleh sistem:
{
"Offset": -1,
"Limit": 10,
"Collapse": null,
"Sort": null,
"GetTotalCount": true,
"Token": null,
"Query": {
"Name": "GeoBoundingBoxQuery",
"Query": {
"FieldName": "col_geopoint",
"TopLeft": "10,0",
"BottomRight": "0,10"
}
}
}
Gunakan SDK Tablestore
Anda dapat menjalankan kueri kotak pembatas geografis menggunakan SDK Tablestore untuk Java, SDK Tablestore untuk Go, SDK Tablestore untuk Python, SDK Tablestore untuk Node.js, SDK Tablestore untuk .NET dan SDK Tablestore untuk PHP. Pada contoh berikut, SDK Tablestore untuk Java digunakan untuk menjelaskan cara menjalankan kueri kotak pembatas geografis.
Berikut ini adalah contoh kode sampel yang menunjukkan cara mengkueri baris di mana nilai kolom Col_GeoPoint berada dalam area geografis persegi panjang yang didefinisikan oleh pojok kiri atas "10,0" dan pojok kanan bawah "0,10":
public static void geoBoundingBoxQuery(SyncClient client) {
SearchQuery searchQuery = new SearchQuery();
GeoBoundingBoxQuery geoBoundingBoxQuery = new GeoBoundingBoxQuery(); // Gunakan GeoBoundingBoxQuery.
geoBoundingBoxQuery.setFieldName("Col_GeoPoint"); // Tentukan nama kolom yang ingin Anda kueri.
geoBoundingBoxQuery.setTopLeft("10,0"); // Tentukan koordinat pojok kiri atas area geografis persegi panjang.
geoBoundingBoxQuery.setBottomRight("0,10"); // Tentukan koordinat pojok kanan bawah area geografis persegi panjang.
searchQuery.setQuery(geoBoundingBoxQuery);
//searchQuery.setGetTotalCount(true); // Setel parameter GetTotalCount ke true untuk mengembalikan jumlah total baris yang memenuhi kondisi kueri.
SearchRequest searchRequest = new SearchRequest("<TABLE_NAME>", "<SEARCH_INDEX_NAME>", searchQuery);
// Anda dapat menggunakan parameter columnsToGet untuk menentukan kolom yang ingin Anda kembalikan atau menentukan bahwa semua kolom dikembalikan. Jika Anda tidak menentukan parameter ini, hanya kolom kunci utama yang dikembalikan.
//SearchRequest.ColumnsToGet columnsToGet = new SearchRequest.ColumnsToGet();
//columnsToGet.setReturnAll(true); // Tentukan bahwa semua kolom dikembalikan.
//columnsToGet.setColumns(Arrays.asList("ColName1","ColName2")); // Tentukan kolom yang ingin Anda kembalikan.
//searchRequest.setColumnsToGet(columnsToGet);
SearchResponse resp = client.search(searchRequest);
//System.out.println("TotalCount: " + resp.getTotalCount()); // Tampilkan jumlah total baris yang memenuhi kondisi kueri alih-alih jumlah baris yang dikembalikan.
System.out.println("Row: " + resp.getRows());
}
Aturan penagihan
Saat Anda menggunakan indeks pencarian untuk mengkueri data, Anda akan dikenakan biaya untuk throughput baca yang dikonsumsi. Untuk informasi lebih lanjut, lihat Item yang Dapat Ditagih dari Indeks Pencarian.
Referensi
Saat Anda menggunakan indeks pencarian untuk mengkueri 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 fuzzy, kueri Boolean, kueri geografis, kueri bersarang, kueri vektor KNN, dan kueri exists. Anda dapat memilih metode kueri berdasarkan kebutuhan bisnis Anda untuk mengkueri data dari berbagai dimensi.
Anda dapat mengurutkan atau membagi halaman baris yang memenuhi kondisi kueri dengan menggunakan fitur pengurutan dan paginasi. Untuk informasi lebih lanjut, lihat Lakukan Pengurutan dan Paginasi.
Anda dapat menggunakan fitur collapse (distinct) untuk merangkum set hasil berdasarkan kolom tertentu. Dengan cara ini, data dari jenis 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. Misalnya, Anda dapat memperoleh 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.