En primer lugar, debe instalarlo Elasticsearch en su servidor o usar un Elasticsearch servicio basado en la nube como Elastic Cloud. Asegúrese de instalar una versión compatible Elasticsearch con el complemento GeoPoint.
Instalar y configurar el complemento GeoPoint
Elasticsearch admite la búsqueda de geolocalización a través del complemento GeoPoint. Para instalar este complemento, puede usar la Elasticsearch herramienta de administración de complementos.
Por ejemplo, si está utilizando Elasticsearch la versión 7.x, puede ejecutar el siguiente comando para instalar el complemento GeoPoint:
bin/elasticsearch-plugin install ingest-geoip
Después de instalar el complemento GeoPoint, debe configurar su índice para usar el tipo de datos "geo_point" para el campo que contendrá la información de geolocalización. Para ello, puede editar la asignación de un índice existente o crear un índice nuevo con la asignación configurada.
Definir el campo de geolocalización en el mapeo
Agregue el campo de geolocalización a su índice y edite el mapeo para ese campo. El campo de geolocalización suele utilizar el tipo de datos "geo_point". El mapeo definirá los atributos y opciones para el campo de geolocalización, como la precisión de las coordenadas, el formato y más.
Ejemplo:
PUT /my_locations_index
{
"mappings": {
"properties": {
"location": {
"type": "geo_point"
}
}
}
}
Editar datos
Agregue información de geolocalización a sus documentos. Normalmente, la información de geolocalización se representa como un par de coordenadas longitude
y latitude
. Puede obtener esta información de los usuarios que utilizan la Google Maps API u otras fuentes de datos de geolocalización.
Ejemplo:
PUT /my_locations_index/_doc/1
{
"name": "Ba Dinh Square",
"location": {
"lat": 21.03405,
"lon": 105.81507
}
}
Realizar búsqueda de geolocalización
Ahora que tiene datos de geolocalización en su Elasticsearch índice, puede realizar consultas de búsqueda de geolocalización para encontrar documentos cerca de una ubicación específica o dentro de un cierto rango geográfico. Para realizar una búsqueda de geolocalización, puede utilizar Elasticsearch las consultas correspondientes como geo_distance, geo_bounding_box, geo_polygon, etc.
Ejemplo: busque ubicaciones cercanas a las coordenadas(21.03405, 105.81507) dentro de un radio de 5 km.
GET /my_locations_index/_search
{
"query": {
"geo_distance": {
"distance": "5km",
"location": {
"lat": 21.03405,
"lon": 105.81507
}
}
}
}
Integrar Google Maps
Si desea integrarse Google Maps para Elasticsearch obtener información de geolocalización de los usuarios, puede utilizar Google Maps API para recuperar las coordenadas de longitud y latitud en función de una dirección o una ubicación seleccionada por los usuarios. Luego, puede usar esta información para agregar datos de geolocalización a su Elasticsearch índice y realizar consultas de búsqueda de geolocalización.
En conclusión, la integración Google Maps con Elasticsearch le permite aprovechar las funciones de búsqueda de geolocalización en sus datos, lo que permite una búsqueda precisa y eficiente basada en la información de geolocalización.