Разработчик общей поисковой системы

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++ и хотите на нём писать
- Знаете классические алгоритмы и структуры данных
- Глубоко разбираетесь в многопоточном программировании
- Использовали и разрабатывали распределённые системы
- Понимаете, как работают поисковые системы и как устроены поисковые индексы внутри (будет преимуществом)


Поделиться:

Опубликована месяц назад

Мы обрабатываем данные посетителей и используем куки в соответствии с политикой конфиденциальности.