В цьому завданні багато різних нюансів. Адже користувач може буквально промахнутись із кнопкою, зробити одруківку, набрати стару назву вулиці замість нової і тому подібне. Це дуже важливо, адже якщо ми не будемо враховувати пошук з помилками, і застосунок не буде видавати правильну адресу, або показуватиме її не в перших пунктах автопідбору, клієнт може взагалі відмовитись від поїздки. Показати юзеру одразу правильну адресу в підказках — це буденне, але важливе завдання
Виконуємо його за допомогою потужного движка Elasticsearch. В такий спосіб ми обробляємо усі дані по адресах, які оновлюємо щодня. Цілий штат наших картографів займається тим, що слідкує за усіма змінами на картах, не лише назвами вулиць і номерами будинків, але, приміром, вносить дані про ресторани чи кіно, що закрилися.
Такі дані ми індексуємо щодня, і це нетривіальна задача — згодувати Elasticsearch мільйони геооб'єктів у 23 містах, де ми працюємо. Ще й організувати розумний і швидкий пошук по цих адресах. Якщо користувач поміняв навіть одну літеру в назві вулиці, ми маємо супершвидко, за мілісекунди підвантажити новий список адрес, який оновлюватиметься із кожним тапом.
До речі, коли я тільки прийшов в Uklon, Elasticsearch ще не використовували, було інше рішення, яке не дуже масштабувалося, і з ростом бази клієнтів та навантаження воно би не впоралося. Тож мені потрібно було самому розбиратися в тому, як працює Elasticsearch, і потім навчати команду.