Pengantar Pencarian Geolokasi di Elasticsearch

Pertama, Anda perlu menginstal Elasticsearch di server Anda atau menggunakan layanan berbasis cloud Elasticsearch seperti Elastic Cloud. Pastikan Anda menginstal versi yang kompatibel Elasticsearch dengan plugin GeoPoint.

 

Instal dan Konfigurasikan Plugin GeoPoint

Elasticsearch mendukung pencarian geolokasi melalui plugin GeoPoint. Untuk menginstal plugin ini, Anda dapat menggunakan Elasticsearch alat manajemen plugin.

Misalnya, jika Anda menggunakan Elasticsearch versi 7.x, Anda dapat menjalankan perintah berikut untuk menginstal plugin GeoPoint:

bin/elasticsearch-plugin install ingest-geoip

Setelah menginstal plugin GeoPoint, Anda perlu mengonfigurasi indeks Anda untuk menggunakan tipe data "geo_point" untuk bidang yang akan menyimpan informasi geolokasi. Untuk melakukannya, Anda dapat mengedit pemetaan indeks yang ada atau membuat indeks baru dengan pemetaan yang telah dikonfigurasi.

 

Tentukan Bidang Geolokasi di Pemetaan

Tambahkan bidang geolokasi ke indeks Anda dan edit pemetaan untuk bidang tersebut. Bidang geolokasi biasanya menggunakan tipe data "geo_point". Pemetaan akan menentukan atribut dan opsi untuk bidang geolokasi, seperti ketepatan koordinat, format, dan lainnya.

Contoh:

PUT /my_locations_index  
{  
  "mappings": {  
    "properties": {  
      "location": {  
        "type": "geo_point"  
      }  
    }  
  }  
}  

 

Sunting Data

Tambahkan informasi geolokasi ke dokumen Anda. Biasanya, informasi geolokasi direpresentasikan sebagai sepasang longitude dan latitude koordinat. Anda dapat memperoleh informasi ini dari pengguna menggunakan Google Maps API atau sumber data geolokasi lainnya.

Contoh:

PUT /my_locations_index/_doc/1  
{  
  "name": "Ba Dinh Square",  
  "location": {  
    "lat": 21.03405,  
    "lon": 105.81507  
  }  
}  

 

Lakukan Pencarian Geolokasi

Sekarang setelah Anda memiliki data geolokasi dalam Elasticsearch indeks, Anda dapat melakukan permintaan pencarian geolokasi untuk menemukan dokumen di dekat lokasi tertentu atau dalam rentang geografis tertentu. Untuk melakukan pencarian geolokasi, Anda dapat menggunakan Elasticsearch kueri yang sesuai seperti geo_distance, geo_bounding_box, geo_polygon, dll.

Contoh: Temukan lokasi di dekat koordinat(21.03405, 105.81507) dalam radius 5 km.

GET /my_locations_index/_search  
{  
  "query": {  
    "geo_distance": {  
      "distance": "5km",  
      "location": {  
        "lat": 21.03405,  
        "lon": 105.81507  
      }  
    }  
  }  
}  

 

Mengintegrasikan Google Maps

Jika Anda ingin berintegrasi Google Maps dengan Elasticsearch untuk mendapatkan informasi geolokasi dari pengguna, Anda dapat menggunakan Google Maps API untuk mengambil koordinat bujur dan lintang berdasarkan alamat atau lokasi yang dipilih oleh pengguna. Kemudian, Anda dapat menggunakan informasi ini untuk menambahkan data geolokasi ke Elasticsearch indeks Anda dan melakukan kueri penelusuran geolokasi.

Kesimpulannya, berintegrasi Google Maps dengan Elasticsearch memungkinkan Anda memanfaatkan fitur pencarian geolokasi di data Anda, memungkinkan pencarian yang akurat dan efisien berdasarkan informasi geolokasi.