全部产品
Search
文档中心

Tablestore:Kueri kotak pembatas geografis

更新时间:Jul 06, 2025

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.

Operasi API

Anda dapat menyetel 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 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:

Gunakan Konsol Tablestore

  1. Pergi ke tab Indexes.

    1. Masuk ke konsol Tablestore.

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

    3. Di halaman Overview, klik nama instance yang ingin Anda kelola atau klik Manage Instance di kolom Actions instance.

    4. Di tab Tables dari tab Instance Details, klik nama tabel data atau klik Indexes di kolom Tindakan tabel data.

  2. Di tab Indexes, temukan indeks pencarian yang ingin Anda gunakan untuk mengkueri data dan klik Manage Data di kolom Actions.

  3. Di kotak dialog Search, konfigurasikan parameter kueri.

    1. 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.

    2. 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.

    3. Pilih bidang indeks bertipe data GEOPOINT dan klik Add.

    4. 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.

    5. 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.

    6. 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.

  4. 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.

  1. 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
  2. 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.

FAQ

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.