В общем существует много способов работы с гео данными.
- KD-Tree
- BKD-Tree
- Quad-Tree
- GeoHash
- R-Tree
В нашем случае мы будем использовать связку GeoHash (для кеша) и BKD-Tree для Elastic. Но также я представлю материалы по KD-Tree & Quad-Tree.
⁉️Я уже слышу твои комментарии: “Да зачем погружаться так глубоко, поставил БД и все тип-топ”. К сожалению, нет. На более высокие позиции любят спрашивать: ”Почему такой подход, а не иной”. И если ты не умеешь дать четкого объяснения и провести сравнение — ты обречен. Реальный кейс: в моем отделе отказали в найме на senior грейд (дали middle+), так как кандидат на собесе не показал широту знаний и вариаций в подходах