全部产品
Search
文档中心

Tablestore:Kueri geo-polygon

更新时间:Jul 06, 2025

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.

Operasi API

Anda dapat menetapkan tipe kueri ke GeoPolygonQuery dalam operasi Search atau ParallelScan untuk menjalankan kueri geo-polygon.

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:

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

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

    4. Tetapkan tipe kueri bidang indeks ke GeoPolygonQuery dan masukkan serta pilih pasangan koordinat titik-titik yang mendefinisikan area geografis poligon.

    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, lalu konfigurasikan informasi yang diperlukan untuk mengumpulkan statistik.

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

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

FAQ

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.