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.