Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 15955|Respuesta: 0

[Fuente] Información de geolocalización de Java en ElasticSearch (geo_point)

[Copiar enlace]
Publicado en 9/1/2019 17:25:39 | | |
Breve introducción

Sabemos que ES soporta una amplia variedad de tipos de datos, además de nuestros tipos básicos de datos comunes, también soporta tipos de datos que registran información de ubicación. En ES, existen dos tipos de datos que registran la información de geolocalización, a saber, geo_shap y geo_point, y a continuación presentaré brevemente geo_point tipos
geo_point soporta múltiples métodos de transferencia de datos:

Cuerda
Posición: lat + "," + lon

Matriz
Posición: {"lat": ...,"lon": ...}

Objetivo
Ubicación: [lon, lat]


Nota: Probablemente todo el mundo haya pisado este pozo al menos una vez == Los puntos de coordenadas geográficas son latitud primero y longitud final ("latitud, longitud") cuando se expresan como cadenas, mientras que los arrays se representan en forma opuesta, con longitud primero y latitud última ([longitud, latitud]). De hecho, dentro de Elasticesearch, ya sea en forma de cuerda o de array, la latitud es la primera y la longitud la última vez. Sin embargo, en los primeros días, para adaptarse a la especificación de formato de GeoJSON, se ajustó la representación de las formas de los arrays. Esto se explica en la página web oficial.
Generalmente existen los siguientes requisitos de consulta para los tipos de geo_point

Consulta de distancia
Encuentra puntos dentro del rango desde el punto central

Consulta de rango de distancia (obsoleta)
Los puntos de consulta dentro del rango especificado del punto central se eliminan de la API en la nueva versión de ES, así que no lo explicaré demasiado aquí
Consulta delimitadora
Encuentra puntos dentro de un rectángulo que consiste en un punto especificado

Consulta de polígonos
Encontrar puntos en un polígono formado por varios puntos

La fábrica de SearchSourceBuilder construida para diferentes consultas en Java es la siguiente:


Servicio de la siguiente manera:

El código de la capa del controlador es el siguiente:

[1]. Cómo usar

Antes de usar geo_point tipos, deberíamos especificar explícitamente el campo como el tipo geo_point mediante mapeo al crear el índice, de la siguiente manera:


Arriba hemos creado un nuevo índice llamado restraunt, y en su archivo de mapeo especificamos explícitamente el tipo de campo "ubicación" como "geo_point"

[2] Prepara algunos datos

Sobre Kibana hemos preparado los siguientes datos:


Hemos preparado 7 datos arriba, y luego necesitamos ejecutar la consulta para ver si nuestra interfaz cumple con nuestras necesidades.

[3] Investigación

Distancia de consulta


Las otras dos consultas son las mismas que las anteriores.




Anterior:ElasticsearchParseException[campo debe ser [lat], [lon] o [geohash]]
Próximo:Discuz instala la app y dice "Los datos no se reconocen, por favor devuelven" solución alternativa
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com