全部产品
Search
文档中心

Tablestore:Kueri Geo

更新时间:Jul 02, 2025

Kueri geo diklasifikasikan ke dalam jenis-jenis berikut: kueri jarak geo, kueri kotak pembatas geo, dan kueri poligon geo.

Prasyarat

Kueri jarak geo

Untuk melakukan kueri jarak geo, tentukan area geografis melingkar dengan menggunakan titik pusat dan radius. Tablestore mengembalikan baris-baris di mana nilai kolom tertentu berada dalam area geografis melingkar tersebut.

  • Parameter

    Parameter

    Deskripsi

    field_name

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

    center_point

    Pasangan koordinat dari titik pusat. Pasangan koordinat terdiri dari nilai lintang dan bujur.

    Pasangan koordinat berada dalam format lintang,bujur. Nilai valid untuk lintang: [-90,+90]. Nilai valid untuk bujur: [-180,+180]. Contoh: 35.8,-45.91.

    distance

    Radius dari area geografis melingkar. Nilai parameter ini bertipe data DOUBLE. Satuan: meter.

    query

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

    table_name

    Nama tabel data.

    index_name

    Nama indeks pencarian.

  • Contoh

    Berikut adalah contoh kode sampel tentang cara mengkueri baris-baris di mana nilai kolom Col_GeoPoint berada dalam area geografis melingkar yang memiliki titik pusat '32.5,116.5' dan radius hingga 300.000 meter:

    query = GeoDistanceQuery('Col_GeoPoint', '32.5,116.5', 300000)
    rows, next_token, total_count, is_all_succeed, agg_results, group_by_results = client.search(
        '<TABLE_NAME>', '<SEARCH_INDEX_NAME>', 
        SearchQuery(query, limit=100, get_total_count=True), 
        ColumnsToGet(return_type=ColumnReturnType.ALL)
    ).v1_response()

Kueri kotak pembatas geo

Untuk melakukan kueri kotak pembatas geo, tentukan area geografis persegi panjang dengan menggunakan sudut kiri atas dan sudut kanan bawah. Tablestore mengembalikan baris-baris di mana nilai kolom tertentu berada dalam area geografis persegi panjang tersebut.

  • Parameter

    Parameter

    Deskripsi

    field_name

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

    top_left

    Pasangan koordinat dari sudut kiri atas area geografis persegi panjang.

    bottom_right

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

    Pasangan koordinat berada dalam format lintang,bujur. Nilai valid untuk lintang: [-90,+90]. Nilai valid untuk bujur: [-180,+180]. Contoh: 35.8,-45.91.

    query

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

    table_name

    Nama tabel data.

    index_name

    Nama indeks pencarian.

  • Contoh

    Berikut adalah contoh kode sampel tentang cara mengkueri baris-baris di mana nilai kolom Col_GeoPoint berada dalam area geografis persegi panjang yang memiliki sudut kiri atas di '30.9,112.0' dan sudut kanan bawah di '30.2,119.0':

    query = GeoBoundingBoxQuery('Col_GeoPoint', '30.9,112.0', '30.2,119.0')
    rows, next_token, total_count, is_all_succeed, agg_results, group_by_results = client.search(
        '<TABLE_NAME>', '<SEARCH_INDEX_NAME>',  
        SearchQuery(query, limit=100, get_total_count=True), 
        ColumnsToGet(return_type=ColumnReturnType.ALL)
    ).v1_response()

Kueri poligon geo

Untuk melakukan kueri poligon geo, tentukan area geografis poligon dengan menggunakan pasangan koordinat dari beberapa titik. Tablestore mengembalikan baris-baris di mana nilai kolom tertentu berada dalam area geografis poligon tersebut.

  • Parameter

    Parameter

    Deskripsi

    field_name

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

    points

    Pasangan koordinat dari titik-titik yang mendefinisikan area geografis poligon. Anda dapat menentukan poligon dengan menggunakan beberapa pasangan koordinat.

    Pasangan koordinat berada dalam format lintang,bujur. Nilai valid untuk lintang: [-90,+90]. Nilai valid untuk bujur: [-180,+180]. Contoh: 35.8,-45.91.

    query

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

    table_name

    Nama tabel data.

    index_name

    Nama indeks pencarian.

  • Contoh

    Berikut adalah contoh kode sampel tentang cara mengkueri baris-baris di mana nilai kolom Col_Geopoint berada dalam area geografis poligon yang terdiri dari koordinat '30.9,112.0', '30.5,115.0', '30.3, 117.0', dan '30.2,119.0':

    query = GeoPolygonQuery('Col_GeoPoint', ['30.9,112.0', '30.5,115.0', '30.3, 117.0', '30.2,119.0'])
    rows, next_token, total_count, is_all_succeed, agg_results, group_by_results = client.search(
        '<TABLE_NAME>', '<SEARCH_INDEX_NAME>', 
        SearchQuery(query, limit=100, get_total_count=True), 
        ColumnsToGet(return_type=ColumnReturnType.ALL)
    ).v1_response()

FAQ

Referensi

  • Saat Anda menggunakan indeks pencarian untuk mengkueri data, Anda dapat menggunakan metode kueri berikut: kueri tepat, kueri multi-tepat, kueri cocok semua, kueri cocok, kueri frasa cocok, kueri awalan, kueri rentang, kueri wildcard, kueri geo, kueri Boolean, kueri vektor KNN, kueri bersarang, dan kueri eksistensi. Anda dapat menggunakan metode kueri yang disediakan oleh indeks pencarian untuk mengkueri data dari berbagai dimensi sesuai dengan kebutuhan bisnis Anda.

    Anda dapat mengurutkan atau membagi halaman baris yang memenuhi kondisi kueri dengan menggunakan fitur pengurutan dan paginasi. Untuk informasi lebih lanjut, lihat Pengurutan dan paginasi.

    Anda dapat menggunakan fitur collapse (distinct) untuk meruntuhkan set hasil berdasarkan kolom tertentu. Dengan cara ini, data dari tipe tertentu hanya muncul sekali dalam hasil kueri. Untuk informasi lebih lanjut, lihat Collapse (distinct).

  • Jika Anda ingin menganalisis data dalam tabel data, Anda dapat menggunakan fitur agregasi dari operasi Search atau menjalankan pernyataan SQL. Misalnya, Anda dapat memperoleh nilai minimum dan maksimum, jumlah, dan total jumlah baris. Untuk informasi lebih lanjut, lihat Agregasi dan Kueri SQL.

  • Jika Anda ingin memperoleh semua baris yang memenuhi kondisi kueri tanpa perlu mengurutkan baris-baris tersebut, Anda dapat memanggil operasi ParallelScan dan ComputeSplits untuk menggunakan fitur pemindaian paralel. Untuk informasi lebih lanjut, lihat Pemindaian paralel.