46 votos

Uso de geohash para búsquedas de proximidad

Busco optimizar el tiempo de las búsquedas geográficas por proximidad de puntos.

Mi entrada es un punto lat,lng y estoy buscando en un conjunto precalculado de ubicaciones a n puntos más cercanos.

No me importa el tiempo/espacio que se necesite para construir el índice precomputado de ubicaciones, pero sí me importa que las consultas sean súper rápidas.

Estoy pensando en usar geohash como clave de búsqueda, donde primero comprobaría si obtengo resultados para X caracteres de la clave y luego seguiría recortando caracteres desde el final de la clave hasta que empiece a ver resultados.

Según mi (muy escasa por ahora) comprensión de las técnicas de geoíndices, este enfoque debería ser capaz de producir los resultados más rápidos (en términos de tiempo de consulta) en comparación con todas las demás implementaciones conocidas (como R Tree y compañía)

-1voto

mary Puntos 21

Si quieres explorar la ruta de Geohash más profundamente, aquí hay una implementación más detallada de las funciones relacionadas con Geohash para TSQL en la que podrías estar interesado.

En cuanto al debate entre el rendimiento de los índices R-Tree frente a los Geohashes basados en números enteros, tengo diferentes experiencias relacionadas con escenarios de big data. La disyuntiva es la misma que en la ingeniería de software entre el uso de Arrays de índices, HashTables y Árboles. Cada uno tiene casos de uso en los que son superiores a los otros dos. Lo mismo ocurre con los índices R-Tree frente a la agrupación Geohash.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X