Utangulizi wa Utafutaji wa Kijiografia katika Elasticsearch

Kwanza, unahitaji kusakinisha Elasticsearch kwenye seva yako au utumie huduma inayotegemea wingu Elasticsearch kama vile Elastic Cloud. Hakikisha umesakinisha toleo linalooana Elasticsearch na programu-jalizi ya GeoPoint.

 

Sakinisha na Usanidi programu-jalizi ya GeoPoint

Elasticsearch inasaidia utafutaji wa eneo la kijiografia kupitia programu-jalizi ya GeoPoint. Ili kusakinisha programu-jalizi hii, unaweza kutumia Elasticsearch zana ya usimamizi wa programu-jalizi.

Kwa mfano, ikiwa unatumia Elasticsearch toleo la 7.x, unaweza kutekeleza amri ifuatayo ili kusakinisha programu-jalizi ya GeoPoint:

bin/elasticsearch-plugin install ingest-geoip

Baada ya kusakinisha programu-jalizi ya GeoPoint, unahitaji kusanidi faharasa yako ili kutumia aina ya data ya "geo_point" kwa sehemu ambayo itashikilia maelezo ya eneo la kijiografia. Ili kufanya hivyo, unaweza kuhariri ramani ya faharasa iliyopo au kuunda faharasa mpya na upangaji ramani uliosanidiwa.

 

Bainisha Uga wa Uwekaji Kijiografia katika Ramani

Ongeza uga wa eneo la kijiografia kwenye faharasa yako na uhariri ramani ya sehemu hiyo. Sehemu ya eneo la kijiografia kwa kawaida hutumia aina ya data ya "geo_point". Uchoraji wa ramani utafafanua sifa na chaguo za uga wa eneo la kijiografia, kama vile usahihi wa viwianishi, umbizo, na zaidi.

Mfano:

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

 

Hariri Data

Ongeza maelezo ya eneo kwenye hati zako. Kwa kawaida, maelezo ya eneo la kijiografia huwakilishwa kama jozi ya longitude na latitude kuratibu. Unaweza kupata maelezo haya kutoka kwa watumiaji kwa kutumia Google Maps API au vyanzo vingine vya data ya eneo la kijiografia.

Mfano:

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

 

Fanya Utafutaji wa Eneo la Kijiografia

Kwa kuwa sasa una data ya eneo la kijiografia katika Elasticsearch faharasa yako, unaweza kufanya hoja za utafutaji wa eneo la kijiografia ili kupata hati karibu na eneo mahususi au ndani ya masafa fulani ya kijiografia. Ili kutafuta eneo la kijiografia, unaweza kutumia Elasticsearch hoja zinazolingana kama vile geo_distance, geo_bounding_box, geo_polygon, n.k.

Mfano: Tafuta maeneo karibu na viwianishi(21.03405, 105.81507) ndani ya umbali wa kilomita 5.

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

 

Unganisha Google Maps

Iwapo ungependa kujumuika Google Maps na Elasticsearch kupata maelezo ya eneo kutoka kwa watumiaji, unaweza kutumia Google Maps API kupata viwianishi vya longitudo na latitudo kulingana na anwani au eneo lililochaguliwa na watumiaji. Kisha, unaweza kutumia maelezo haya kuongeza data ya eneo la kijiografia kwenye Elasticsearch faharasa yako na kutekeleza hoja za utafutaji wa eneo la kijiografia.

Kwa kumalizia, kujumuisha Google Maps na Elasticsearch hukuruhusu kutumia vipengele vya utafutaji wa eneo la kijiografia katika data yako, kuwezesha utafutaji sahihi na unaofaa kulingana na maelezo ya eneo la kijiografia.