Kueri geo-polygon memungkinkan Anda menentukan area geografis poligon sebagai kondisi kueri. Tablestore mengembalikan baris di mana nilai kolom yang ditentukan berada dalam area geografis poligon tersebut.
Parameter
Parameter | Deskripsi |
fieldName | Nama kolom yang ingin Anda kueri. Nilai parameter ini bertipe data GEOPOINT. |
points | Pasangan koordinat titik-titik yang mendefinisikan area geografis poligon. Nilai parameter ini harus dalam format 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. Tetapkan parameter ini ke GeoPolygonQuery. |
getTotalCount | Menentukan apakah akan mengembalikan jumlah total baris yang memenuhi kondisi kueri. Nilai default parameter ini adalah false, yang menentukan bahwa jumlah total baris yang memenuhi kondisi kueri tidak dikembalikan. Jika Anda menetapkan parameter ini ke true, performa kueri akan terpengaruh. |
tableName | Nama tabel data. |
indexName | Nama indeks pencarian. |
columnsToGet | Menentukan apakah akan mengembalikan semua kolom dari setiap baris yang memenuhi kondisi kueri. Anda dapat menentukan 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 menetapkan bidang returnAll ke true, semua kolom dikembalikan. |
Metode
Anda dapat melakukan kueri geo-polygon menggunakan konsol Tablestore, CLI Tablestore, dan SDK Tablestore. Pastikan prasyarat berikut telah dipenuhi sebelum melaksanakan kueri:
Anda memiliki akun Alibaba Cloud atau pengguna RAM dengan izin untuk melakukan 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 melakukan kueri, pasangan AccessKey harus 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 melakukan kueri, instance OTSClient harus diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi klien Tablestore.
Jika Anda ingin menggunakan CLI Tablestore untuk melakukan kueri, CLI Tablestore harus diunduh dan dimulai, serta informasi tentang instance yang ingin Anda akses dan tabel data 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 dikembalikan. Jika Anda memilih operator Or dan menentukan satu kondisi kueri, data yang memenuhi kondisi kueri dikembalikan. Jika Anda memilih operator logika Atau dan menentukan beberapa kondisi kueri, data yang memenuhi salah satu kondisi kueri dikembalikan. Jika Anda memilih operator logika Not, data yang tidak memenuhi kondisi kueri dikembalikan.
Pilih bidang indeks bertipe data GEOPOINT dan klik Add.
Tetapkan tipe kueri bidang indeks ke GeoPolygonQuery dan masukkan serta pilih pasangan koordinat titik-titik yang mendefinisikan area geografis poligon.
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, lalu konfigurasikan informasi yang diperlukan untuk mengumpulkan statistik.
Klik OK.
Data yang memenuhi kondisi kueri ditampilkan dalam urutan yang ditentukan 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 dari setiap baris yang memenuhi kondisi kueri.
search -n search_index --return_all_indexed
Masukkan kondisi kueri sesuai petunjuk sistem:
{
"Offset": -1,
"Limit": 10,
"Collapse": null,
"Sort": null,
"GetTotalCount": true,
"Token": null,
"Query": {
"Name": "GeoPolygonQuery",
"Query": {
"FieldName": "col_geopoint",
"Points": ["0,0","5,5","5,0"]
}
}
}
Gunakan SDK Tablestore
Anda dapat melakukan kueri geo-polygon dengan 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 menggambarkan cara melakukan kueri geo-polygon.
Berikut ini adalah contoh kode sampel yang menunjukkan cara mengkueri baris di mana nilai kolom Col_GeoPoint berada dalam area geografis poligon yang ditentukan.
public static void geoPolygonQuery(SyncClient client) {
SearchQuery searchQuery = new SearchQuery();
GeoPolygonQuery geoPolygonQuery = new GeoPolygonQuery(); // Gunakan GeoPolygonQuery.
geoPolygonQuery.setFieldName("Col_GeoPoint");
geoPolygonQuery.setPoints(Arrays.asList("0,0","5,5","5,0")); // Tentukan koordinat titik-titik sudut area geografis poligon.
searchQuery.setQuery(geoPolygonQuery);
//searchQuery.setGetTotalCount(true); // Tetapkan 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 bukan 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 match all, kueri match, kueri match phrase, kueri prefix, kueri range, kueri wildcard, kueri fuzzy, kueri Boolean, kueri geo, kueri nested, 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 Melakukan pengurutan dan paginasi.
Anda dapat menggunakan fitur collapse (distinct) untuk merangkum set hasil berdasarkan kolom tertentu. Dengan cara ini, data jenis 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 jumlah total baris. Untuk informasi lebih lanjut, lihat Agregasi dan Kueri SQL.
Jika Anda ingin memperoleh 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.