- Работа в Москве
- IT, интернет, связь, телеком
- Разработчик
- Разработчик общей поисковой системы
Разработчик общей поисковой системы
200 000 - 400 000 ₽
Мы создаём Поиск будущего.
Наша команда начинает строить масштабный проект, который определит технологическое развитие Яндекс Поиска в ближайшие годы.
Как ни странно, сейчас в компании нет общей поисковой системы. Веб-поиск (основной поиск Яндекса, доступный на yandex.ru/search) отличается своей реализацией от поиска по картинкам и видео. Поиски в Яндекс Еде, Музыке или Маркете тоже разрабатываются по большей части независимо. Основной вектор развития всегда задаёт веб-поиск, а остальные лишь догоняют. Со временем он сильно вырвался вперёд: улучшения не успевают добираться до других сервисов, и разрыв в технологиях продолжает расти.
В компании уже решали задачу создания единого поиска. Внутренний проект SaaS (Search-as-a-Service) предоставляет удобный интерфейс для решения простых поисковых сценариев и используется в сотнях сервисов компании. Однако ключевые поисковые проекты всё ещё развиваются независимо, а SaaS недостаточно гибок и всё так же находится в роли догоняющего.
С учётом накопленного в компании опыта сегодня мы понимаем задачу поиска настолько хорошо, что готовы сформулировать общее решение. Наша цель — разработать новую поисковую систему, которая позволит обобщить и унифицировать все поисковые и рекомендательные сценарии. Мы делаем так, чтобы и веб-поиск, и другие поиски в компании развивались в единой среде поверх общей технологической базы, а не параллельно друг другу.
Задача амбициозная и сложная. Сейчас мы работаем над дизайном SaaS нового поколения и внедряем MVP. Сейчас — тот самый момент, когда можно присоединиться к проекту на старте и повлиять на его дальнейшее развитие в целом.
Каким мы видим хорошее решение?
- Концептуально похожим на внешние продукты, например на Elasticsearch, только на большем масштабе и с большей модульностью.
- Поддерживающим различные форматы индексов: полнотекстовые, key-value, trie, N-gram, kNN и другие.
- Позволяющим описать поисковый запрос в относительно простом виде, например на SQL-like-языке.
- С низким порогом входа, с возможностью запустить поиск по своим данным практически без написания кода.
Мы рассматриваем поисковые системы как вид баз данных, но с ослабленными гарантиями консистентности, что позволяет добиться сильно большей производительности.
Какие задачи вас ждут:
- Исследование и проектирование
Вам предстоит познакомиться с существующими поисковыми проектами и принять участие в проектировании дизайна новой распределённой отказоустойчивой поисковой системы.
- Разработка на низком уровне
Вы будете заниматься разработкой и внедрением различных поисковых индексов, кодеков сжатия и компактных структур данных.
- Разработка эффективного рантайма и индексации
Наши инсталляции хранят десятки петабайт данных, потребляют сотни тысяч ядер CPU и обрабатывают сотни миллионов запросов в секунду.
Мы ждем, что вы:
- Хорошо владеете языком C++ и хотите на нём писать
- Знаете классические алгоритмы и структуры данных
- Глубоко разбираетесь в многопоточном программировании
- Использовали и разрабатывали распределённые системы
- Понимаете, как работают поисковые системы и как устроены поисковые индексы внутри (будет преимуществом)
Опубликована месяц назад