జియోలొకేషన్ శోధనకు పరిచయం Elasticsearch

Elasticsearch ముందుగా, మీరు మీ సర్వర్‌లో ఇన్‌స్టాల్ చేయాలి లేదా Elasticsearch సాగే క్లౌడ్ వంటి క్లౌడ్ ఆధారిత సేవను ఉపయోగించాలి. Elasticsearch మీరు జియోపాయింట్ ప్లగ్ఇన్‌తో అనుకూల సంస్కరణను ఇన్‌స్టాల్ చేశారని నిర్ధారించుకోండి .

 

జియోపాయింట్ ప్లగిన్‌ను ఇన్‌స్టాల్ చేసి కాన్ఫిగర్ చేయండి

Elasticsearch GeoPoint ప్లగిన్ ద్వారా జియోలొకేషన్ శోధనకు మద్దతు ఇస్తుంది. ఈ ప్లగ్‌ఇన్‌ని ఇన్‌స్టాల్ చేయడానికి, మీరు ప్లగిన్ మేనేజ్‌మెంట్ టూల్‌ని ఉపయోగించవచ్చు Elasticsearch.

ఉదాహరణకు, మీరు వెర్షన్ 7.xని ఉపయోగిస్తుంటే Elasticsearch, మీరు GeoPoint ప్లగిన్‌ను ఇన్‌స్టాల్ చేయడానికి కింది ఆదేశాన్ని అమలు చేయవచ్చు:

bin/elasticsearch-plugin install ingest-geoip

జియోపాయింట్ ప్లగ్ఇన్‌ను ఇన్‌స్టాల్ చేసిన తర్వాత, జియోలొకేషన్ సమాచారాన్ని కలిగి ఉండే ఫీల్డ్ కోసం "జియో_పాయింట్" డేటా రకాన్ని ఉపయోగించడానికి మీరు మీ ఇండెక్స్‌ను కాన్ఫిగర్ చేయాలి. దీన్ని చేయడానికి, మీరు ఇప్పటికే ఉన్న ఇండెక్స్ యొక్క మ్యాపింగ్‌ను సవరించవచ్చు లేదా కాన్ఫిగర్ చేసిన మ్యాపింగ్‌తో కొత్త సూచికను సృష్టించవచ్చు.

 

మ్యాపింగ్‌లో జియోలొకేషన్ ఫీల్డ్‌ను నిర్వచించండి

మీ ఇండెక్స్‌కు జియోలొకేషన్ ఫీల్డ్‌ని జోడించి, ఆ ఫీల్డ్ కోసం మ్యాపింగ్‌ను ఎడిట్ చేయండి. జియోలొకేషన్ ఫీల్డ్ సాధారణంగా "జియో_పాయింట్" డేటా రకాన్ని ఉపయోగిస్తుంది. మ్యాపింగ్ జియోలొకేషన్ ఫీల్డ్ కోసం అట్రిబ్యూట్‌లు మరియు ఎంపికలను నిర్వచిస్తుంది, కోఆర్డినేట్‌ల ఖచ్చితత్వం, ఫార్మాట్ మరియు మరిన్ని.

ఉదాహరణ:

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

 

డేటాను సవరించండి

మీ పత్రాలకు జియోలొకేషన్ సమాచారాన్ని జోడించండి. longitude సాధారణంగా, జియోలొకేషన్ సమాచారం ఒక జత మరియు కోఆర్డినేట్‌లుగా సూచించబడుతుంది latitude. Google Maps API మీరు వినియోగదారులు లేదా ఇతర జియోలొకేషన్ డేటా సోర్స్‌లను ఉపయోగించి ఈ సమాచారాన్ని పొందవచ్చు .

ఉదాహరణ:

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

 

జియోలొకేషన్ శోధనను జరుపుము

ఇప్పుడు మీరు మీ Elasticsearch ఇండెక్స్‌లో జియోలొకేషన్ డేటాను కలిగి ఉన్నందున, మీరు నిర్దిష్ట స్థానానికి సమీపంలో లేదా నిర్దిష్ట భౌగోళిక పరిధిలో పత్రాలను కనుగొనడానికి జియోలొకేషన్ శోధన ప్రశ్నలను చేయవచ్చు. భౌగోళిక స్థాన శోధనను నిర్వహించడానికి, మీరు Elasticsearch geo_distance, geo_bounding_box, geo_polygon మొదలైన సంబంధిత ప్రశ్నలను ఉపయోగించవచ్చు.

ఉదాహరణ: 5 కిమీ వ్యాసార్థంలో కోఆర్డినేట్‌ల(21.03405, 105.81507) సమీపంలో స్థానాలను కనుగొనండి.

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

 

ఇంటిగ్రేట్ చేయండి Google Maps

Google Maps మీరు వినియోగదారుల నుండి జియోలొకేషన్ సమాచారాన్ని పొందడం కోసం ఏకీకృతం చేయాలనుకుంటే, మీరు వినియోగదారులు ఎంచుకున్న చిరునామా లేదా స్థానం ఆధారంగా రేఖాంశం మరియు అక్షాంశ కోఆర్డినేట్‌లను తిరిగి పొందడానికి Elasticsearch ఉపయోగించవచ్చు. Google Maps API అప్పుడు, మీరు మీ ఇండెక్స్‌కు జియోలొకేషన్ డేటాను జోడించడానికి Elasticsearch మరియు జియోలొకేషన్ శోధన ప్రశ్నలను నిర్వహించడానికి ఈ సమాచారాన్ని ఉపయోగించవచ్చు.

ముగింపులో, మీ డేటాలో జియోలొకేషన్ సెర్చ్ ఫీచర్‌లను ప్రభావితం చేయడానికి మిమ్మల్ని ఇంటిగ్రేట్ చేయడం Google Maps అనుమతిస్తుంది Elasticsearch, జియోలొకేషన్ సమాచారం ఆధారంగా ఖచ్చితమైన మరియు సమర్థవంతమైన శోధనను ఎనేబుల్ చేస్తుంది.