Самый лучший GEODIST() к западу от Рио-Гранде / Андрей Аксенов (Авито, Sphinx)

2 642
9.7
Онтико85 тыс
Опубликовано 5 декабря 2019, 21:15
Приглашаем на конференцию HighLoad++ 2024, которая пройдет 2 и 3 декабря в Москве!
Программа, подробности и билеты по ссылке: clck.ru/3DD4yb
--------
HighLoad++ Siberia 2019

Тезисы и презентация:
highload.ru/siberia/2019/abstr...

Внутри движка Sphinx есть умеренно нетривиальная реализация функции GEODIST(). Внутри скомбинированы пара-тройка разных математических формул, чтобы обеспечить достаточную точность для всех возможных случаев разных расстояний между точками, плюс пара-тройка разных полустандартных оптимизационных трюков поверх этого, чтобы обеспечить еще и достаточную скорость.

Кажется, что небезынтересно разобрать детали этой реализации и продемонстрировать процесс её конструирования и оптимизации. Как дошли до жизни такой, какими именно шагами, как пригодилась (в кои веки) математика с первого курса, какие оптимизационные трюки снова, как и в 1959 году, неизменно сработали.

Нашли ошибку в видео? Пишите нам на support@ontico.ru
жизньигрыфильмывесельеавтотехномузыкаспортедаденьгистройкаохотаогородзнанияздоровьекреативдетское