Introdução à pesquisa de geolocalização em Elasticsearch

Em primeiro lugar, você precisa instalar em seu servidor ou usar um serviço Elasticsearch baseado em nuvem como o Elastic Cloud. Elasticsearch Certifique-se de instalar uma versão compatível Elasticsearch com o plug-in GeoPoint.

 

Instalar e configurar o plug-in GeoPoint

Elasticsearch oferece suporte à pesquisa de geolocalização por meio do plug-in GeoPoint. Para instalar este plug-in, você pode usar a Elasticsearch ferramenta de gerenciamento de plug-ins.

Por exemplo, se você estiver usando Elasticsearch a versão 7.x, poderá executar o seguinte comando para instalar o plug-in GeoPoint:

bin/elasticsearch-plugin install ingest-geoip

Depois de instalar o plug-in GeoPoint, você precisa configurar seu índice para usar o tipo de dados "geo_point" para o campo que conterá as informações de geolocalização. Para fazer isso, você pode editar o mapeamento de um índice existente ou criar um novo índice com o mapeamento configurado.

 

Definir o campo de geolocalização no mapeamento

Adicione o campo de geolocalização ao seu índice e edite o mapeamento desse campo. O campo de geolocalização normalmente usa o tipo de dados "geo_point". O mapeamento definirá os atributos e opções para o campo de geolocalização, como a precisão das coordenadas, formato e muito mais.

Exemplo:

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

 

Editar dados

Adicione informações de geolocalização aos seus documentos. Normalmente, as informações de geolocalização são representadas como um par de coordenadas longitude e latitude. Você pode obter essas informações de usuários usando a Google Maps API ou outras fontes de dados de geolocalização.

Exemplo:

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

 

Realizar pesquisa de geolocalização

Agora que você tem dados de geolocalização em seu Elasticsearch índice, pode realizar consultas de pesquisa de geolocalização para encontrar documentos próximos a um local específico ou dentro de um determinado alcance geográfico. Para realizar uma pesquisa de geolocalização, você pode usar Elasticsearch as consultas correspondentes como geo_distance, geo_bounding_box, geo_polygon, etc.

Exemplo: encontre locais próximos às coordenadas(21.03405, 105.81507) em um raio de 5 km.

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

 

Integrar Google Maps

Se você deseja integrar Google Maps para Elasticsearch obter informações de geolocalização dos usuários, pode usar o Google Maps API para recuperar as coordenadas de longitude e latitude com base em um endereço ou local selecionado pelos usuários. Em seguida, você pode usar essas informações para adicionar dados de geolocalização ao seu Elasticsearch índice e realizar consultas de pesquisa de geolocalização.

Em conclusão, a integração Google Maps com Elasticsearch permite que você aproveite os recursos de pesquisa de geolocalização em seus dados, permitindo uma pesquisa precisa e eficiente com base nas informações de geolocalização.