全部产品
Search
文档中心

Tablestore:Lakukan kueri geografis

更新时间:Jul 02, 2025

Kueri geografis diklasifikasikan menjadi beberapa jenis, yaitu: kueri jarak geografis, kueri kotak pembatas geografis, dan kueri poligon geografis.

Prasyarat

Kueri jarak geografis

Untuk melakukan kueri jarak geografis, tentukan area melingkar menggunakan titik pusat dan radius. Tablestore akan mengembalikan baris-baris yang nilai kolom tertentunya berada dalam area tersebut.

  • Parameter

    Parameter

    Deskripsi

    NamaKolom

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

    TitikPusat

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

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

    JarakDalamMeter

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

    Kueri

    Pernyataan kueri untuk indeks pencarian. Atur tipe kueri menjadi GeoDistanceQuery.

    NamaTabel

    Nama tabel data.

    NamaIndeks

    Nama indeks pencarian.

    KolomUntukDiambil

    Menentukan apakah akan mengembalikan semua kolom dalam baris yang memenuhi kondisi kueri. Anda dapat menentukan parameter ReturnAll, Columns, dan ReturnAllFromIndex.

    Nilai default ReturnAll adalah false, yang menentukan bahwa tidak semua kolom dikembalikan. Anda dapat menggunakan salah satu metode berikut untuk menentukan kolom yang ingin Anda kembalikan. Jika Anda tidak menggunakan metode berikut untuk menentukan kolom yang ingin Anda kembalikan, hanya kolom kunci utama yang dikembalikan.

    • Konfigurasikan Columns untuk menentukan kolom yang ingin Anda kembalikan.

    • Atur ReturnAllFromIndex menjadi true untuk mengembalikan semua kolom dari indeks pencarian.

    Jika Anda mengatur ReturnAll menjadi true, semua kolom dikembalikan.

  • Contoh

    Berikut adalah contoh kode untuk mengkueri baris-baris yang nilai kolom geo_type_col berada dalam area geografis melingkar pada sebuah tabel.

    /// <summary> 
    /// Kueri baris-baris di mana nilai kolom geo_type_col berada dalam area geografis melingkar dalam sebuah tabel. 
    /// </summary>
    /// <param name="client"></param>
    public static void GeoDistanceQuery(OTSClient client)
    {
        SearchQuery searchQuery = new SearchQuery();
        GeoDistanceQuery geoDistanceQuery = new GeoDistanceQuery(); // Atur tipe kueri menjadi GeoDistanceQuery. 
        geoDistanceQuery.FieldName = Geo_type_col;
        geoDistanceQuery.CenterPoint = "10,11"; // Tentukan pasangan koordinat untuk titik pusat. 
        geoDistanceQuery.DistanceInMeter = 10000; // Atur radius dari area geografis melingkar menjadi 10.000. Satuan: meter. 
        searchQuery.Query = geoDistanceQuery;
    
        SearchRequest searchRequest = new SearchRequest(TableName, IndexName, searchQuery);
    
        ColumnsToGet columnsToGet = new ColumnsToGet();
        columnsToGet.Columns = new List<string>() { Geo_type_col }; // Tentukan bahwa kolom Geo_type_col dikembalikan. 
        searchRequest.ColumnsToGet = columnsToGet;
    
        SearchResponse response = client.Search(searchRequest);
        Console.WriteLine(response.TotalCount);
    }
                

Kueri kotak pembatas geografis

Untuk melakukan kueri kotak pembatas geografis, tentukan area persegi panjang menggunakan koordinat sudut kiri atas dan kanan bawah. Tablestore akan mengembalikan baris-baris yang nilai kolom tertentunya berada dalam area tersebut.

  • Parameter

    Parameter

    Deskripsi

    NamaKolom

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

    SudutKiriAtas

    Pasangan koordinat dari sudut kiri atas area geografis persegi panjang.

    SudutKananBawah

    Pasangan koordinat dari sudut kanan bawah area geografis persegi panjang. Pasangan koordinat dari sudut kiri atas dan sudut kanan bawah mendefinisikan area geografis persegi panjang yang unik.

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

    Kueri

    Pernyataan kueri untuk indeks pencarian. Atur tipe kueri menjadi GeoBoundingBoxQuery.

    NamaTabel

    Nama tabel data.

    NamaIndeks

    Nama indeks pencarian.

    KolomUntukDiambil

    Menentukan apakah akan mengembalikan semua kolom dalam baris yang memenuhi kondisi kueri. Anda dapat menentukan parameter ReturnAll, Columns, dan ReturnAllFromIndex.

    Nilai default ReturnAll adalah false, yang menentukan bahwa tidak semua kolom dikembalikan. Anda dapat menggunakan salah satu metode berikut untuk menentukan kolom yang ingin Anda kembalikan. Jika Anda tidak menggunakan metode berikut untuk menentukan kolom yang ingin Anda kembalikan, hanya kolom kunci utama yang dikembalikan.

    • Konfigurasikan Columns untuk menentukan kolom yang ingin Anda kembalikan.

    • Atur ReturnAllFromIndex menjadi true untuk mengembalikan semua kolom dari indeks pencarian.

    Jika Anda mengatur ReturnAll menjadi true, semua kolom dikembalikan.

  • Contoh

    Berikut adalah contoh kode untuk mengkueri baris-baris yang nilai kolom geo_type_col berada dalam area geografis persegi panjang dengan sudut kiri atas di "10,0" dan sudut kanan bawah di "0,10".

    /// <summary>
    /// Kueri baris-baris di mana nilai kolom geo_type_col berada dalam area geografis persegi panjang dalam sebuah tabel. Nilai kolom geo_type_col adalah tipe data GEOPOINT. Area geografis persegi panjang ditentukan oleh sudut kiri atas yang memiliki pasangan koordinat "10,0" dan sudut kanan bawah yang memiliki pasangan koordinat "0,10". 
    /// </summary>
    /// <param name="client"></param>
    public static void GeoBoundingBoxQuery(OTSClient client)
    {
        SearchQuery searchQuery = new SearchQuery();
        GeoBoundingBoxQuery geoBoundingBoxQuery = new GeoBoundingBoxQuery(); // Atur tipe kueri menjadi GeoBoundingBoxQuery. 
        geoBoundingBoxQuery.FieldName = Geo_type_col; // Tentukan nama kolom yang ingin Anda kueri. 
        geoBoundingBoxQuery.TopLeft = "10,0"; // Tentukan pasangan koordinat untuk sudut kiri atas area geografis persegi panjang. 
        geoBoundingBoxQuery.BottomRight = "0,10"; // Tentukan pasangan koordinat untuk sudut kanan bawah area geografis persegi panjang. 
        searchQuery.Query = geoBoundingBoxQuery;
    
        SearchRequest searchRequest = new SearchRequest(TableName, IndexName, searchQuery);
    
        var columnsToGet = new ColumnsToGet();
        columnsToGet.Columns = new List<string> { Geo_type_col }; // Tentukan bahwa kolom Geo_type_col dikembalikan. 
        searchRequest.ColumnsToGet = columnsToGet;
    
        SearchResponse response = client.Search(searchRequest);
        Console.WriteLine(response.TotalCount);
    }

Kueri poligon geografis

Untuk melakukan kueri poligon geografis, tentukan area poligon menggunakan pasangan koordinat dari beberapa titik. Tablestore akan mengembalikan baris-baris yang nilai kolom tertentunya berada dalam area tersebut.

  • Parameter

    Parameter

    Deskripsi

    NamaKolom

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

    Titik-titik

    Pasangan koordinat dari titik-titik yang mendefinisikan area geografis poligon.

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

    Kueri

    Pernyataan kueri untuk indeks pencarian. Atur tipe kueri menjadi GeoPolygonQuery.

    NamaTabel

    Nama tabel data.

    NamaIndeks

    Nama indeks pencarian.

    KolomUntukDiambil

    Menentukan apakah akan mengembalikan semua kolom dalam baris yang memenuhi kondisi kueri. Anda dapat menentukan parameter ReturnAll, Columns, dan ReturnAllFromIndex.

    Nilai default ReturnAll adalah false, yang menentukan bahwa tidak semua kolom dikembalikan. Anda dapat menggunakan salah satu metode berikut untuk menentukan kolom yang ingin Anda kembalikan. Jika Anda tidak menggunakan metode berikut untuk menentukan kolom yang ingin Anda kembalikan, hanya kolom kunci utama yang dikembalikan.

    • Konfigurasikan Columns untuk menentukan kolom yang ingin Anda kembalikan.

    • Atur ReturnAllFromIndex menjadi true untuk mengembalikan semua kolom dari indeks pencarian.

    Jika Anda mengatur ReturnAll menjadi true, semua kolom dikembalikan.

  • Contoh

    Berikut adalah contoh kode untuk mengkueri baris-baris yang nilai kolom geo_type_col berada dalam area geografis poligon pada sebuah tabel.

    /// <summary>
    /// Kueri baris-baris di mana nilai kolom geo_type_col berada dalam area geografis poligon dalam sebuah tabel. 
    /// </summary>
    /// <param name="client"></param>
    public static void GeoPolygonQuery(OTSClient client)
    {
        SearchQuery searchQuery = new SearchQuery();
        GeoPolygonQuery geoPolygonQuery = new GeoPolygonQuery(); // Atur tipe kueri menjadi GeoPolygonQuery. 
        geoPolygonQuery.FieldName = Geo_type_col;
        geoPolygonQuery.Points = new List<string>() { "0,0", "10,0", "10,10" }; // Tentukan pasangan koordinat untuk simpul-simpul area geografis poligon. 
        searchQuery.Query = geoPolygonQuery;
    
        SearchRequest searchRequest = new SearchRequest(TableName, IndexName, searchQuery);
    
        ColumnsToGet columnsToGet = new ColumnsToGet();
        columnsToGet.Columns = new List<string>() { Geo_type_col }; // Tentukan bahwa kolom Geo_type_col dikembalikan. 
        searchRequest.ColumnsToGet = columnsToGet;
    
        SearchResponse response = client.Search(searchRequest);
        Console.WriteLine(response.TotalCount);
    }
                

FAQ

Referensi

  • Saat 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 Boolean, kueri geografis, kueri bersarang, dan kueri eksistensi. Anda dapat menggunakan metode kueri ini untuk mengkueri data dari berbagai dimensi sesuai kebutuhan bisnis Anda.

    Anda dapat mengurutkan atau membagi halaman baris-baris yang memenuhi kondisi kueri menggunakan fitur Pengurutan dan pemisahan halaman. Untuk informasi lebih lanjut, lihat Pengurutan dan Pemisahan Halaman.

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

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

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