All Products
Search
Document Center

Tablestore:Kueri kotak pembatas geografis

Last Updated:May 07, 2026

Kueri kotak pembatas geografis memungkinkan Anda menentukan area geografis berbentuk persegi panjang sebagai kondisi kueri. Tablestore mengembalikan baris-baris yang nilai bidang yang ditentukan berada dalam area geografis persegi panjang tersebut.

Operasi API

Anda dapat mengatur tipe kueri ke GeoBoundingBoxQuery dalam operasi Search atau ParallelScan untuk menjalankan kueri kotak pembatas geografis.

Parameter

Parameter

Deskripsi

fieldName

Nama kolom yang ingin Anda kueri. Nilai parameter ini bertipe data GEOPOINT.

topLeft

Pasangan koordinat sudut kiri atas dari area geografis persegi panjang.

bottomRight

Pasangan koordinat sudut kanan bawah dari area geografis persegi panjang. Area geografis persegi panjang dapat ditentukan dengan menggunakan sudut kiri atas dan sudut kanan bawah.

Formatnya adalah latitude,longitude. Nilai latitude yang valid: [-90,+90]. Nilai longitude yang valid: [-180,+180]. Contoh: 35.8,-45.91.

query

Pernyataan kueri untuk indeks pencarian. Atur parameter ini ke GeoBoundingBoxQuery.

getTotalCount

Menentukan apakah jumlah total baris yang memenuhi kondisi kueri dikembalikan. Nilai default parameter ini adalah false, yang berarti jumlah total baris tidak dikembalikan.

Jika Anda mengatur parameter ini ke true, performa kueri akan menurun.

tableName

Nama tabel data.

indexName

Nama indeks pencarian.

columnsToGet

Menentukan apakah semua kolom dari setiap baris yang memenuhi kondisi kueri dikembalikan. Anda dapat menentukan bidang returnAll dan columns untuk parameter ini.

Nilai default bidang returnAll adalah false, yang berarti tidak semua kolom dikembalikan. Dalam hal ini, Anda dapat menggunakan bidang columns untuk menentukan kolom yang ingin dikembalikan. Jika Anda tidak menentukan kolom yang ingin dikembalikan, hanya kolom kunci primer yang dikembalikan.

Jika Anda mengatur 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 kotak pembatas geografis, pastikan prasyarat berikut terpenuhi:

Gunakan Konsol Tablestore

  1. Buka tab Index Management.

    1. Login ke Table Store console.

    2. Di bilah navigasi atas, pilih kelompok sumber daya dan wilayah.

    3. Di halaman Overview, klik nama instans atau klik Instance Management di kolom Actions.

    4. Di tab Instance Details, pada tab Data Table List, klik nama tabel data atau klik Index Management di kolom Actions.

  2. Di tab Index Management, temukan Search Index yang dituju dan klik Search di kolom Actions.

  3. Di kotak dialog Search, konfigurasikan kueri.

    1. Secara default, semua kolom dikembalikan. Untuk mengembalikan kolom tertentu, matikan Retrieve All Columns dan masukkan nama kolom yang dipisahkan koma.

      Catatan

      Secara default, Table Store mengembalikan kolom kunci primer dari tabel data.

    2. Pilih operator logika: And, Or, atau Not.

      Jika Anda memilih And, kueri mengembalikan data yang memenuhi semua kondisi yang ditentukan. Jika Anda memilih Or, kueri mengembalikan data yang memenuhi minimal satu kondisi yang ditentukan. Jika Anda memilih Not, kueri mengembalikan data yang tidak memenuhi kondisi yang ditentukan.

    3. Pilih bidang indeks bertipe Geopoint dan klik Add.

    4. Atur tipe kueri untuk bidang indeks ke GeoBoundingBoxQuery, lalu masukkan koordinat untuk sudut kiri atas dan sudut kanan bawah persegi panjang.

    5. Secara default, pengurutan dinonaktifkan. Untuk mengurutkan hasil berdasarkan bidang tertentu, aktifkan Enable Sorting, tambahkan bidang pengurutan, dan konfigurasikan urutan pengurutan.

    6. Secara default, agregasi dinonaktifkan. Untuk melakukan agregasi statistik pada bidang tertentu, aktifkan Enable Aggregation, tambahkan bidang untuk agregasi, dan konfigurasikan pengaturan agregasi.

  4. Klik OK.

    Hasil kueri ditampilkan di tab Index Management.

Gunakan CLI Tablestore

Anda dapat menggunakan CLI Tablestore untuk menjalankan perintah search guna mengkueri data menggunakan search index. Untuk informasi selengkapnya, lihat Search index.

  1. Jalankan perintah search untuk menggunakan search_index guna mengkueri data dan mengembalikan semua kolom terindeks dari setiap baris yang memenuhi kondisi kueri.

    search -n search_index --return_all_indexed
  2. Kode contoh berikut menunjukkan cara memasukkan kondisi kueri sesuai permintaan 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 Tablestore SDK for Java, Tablestore SDK for Go, Tablestore SDK for Python, Tablestore SDK for Node.js, Tablestore SDK for .NET, dan Tablestore SDK for PHP. Pada contoh berikut, Tablestore SDK for Java digunakan untuk menjelaskan cara menjalankan kueri kotak pembatas geografis.

Kode contoh berikut menunjukkan cara mengkueri baris-baris yang nilai kolom Col_GeoPoint-nya berada dalam area geografis persegi panjang yang dibatasi oleh sudut kiri atas "10,0" dan sudut 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 sudut kiri atas area geografis persegi panjang. 
    geoBoundingBoxQuery.setBottomRight("0,10"); // Tentukan koordinat sudut kanan bawah area geografis persegi panjang. 
    searchQuery.setQuery(geoBoundingBoxQuery);
    //searchQuery.setGetTotalCount(true); // Atur 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 dikembalikan atau menentukan bahwa semua kolom dikembalikan. Jika Anda tidak menentukan parameter ini, hanya kolom kunci primer 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 dikembalikan. 
    //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());
}

Penagihan

Mengkueri data menggunakan Search Index mengonsumsi throughput baca. Untuk informasi selengkapnya, lihat Metering dan penagihan Search Index.

FAQ

Referensi