25
Александр Савин, Михаил Коровкин Разработчики отдела вертикальных сервисов Яндекс.Работа: Работа не волк Я.Субботник, Санкт-Петербург , 1 декабря 2012

Александр Савин, Михаил Коровкин "Яндекс.Работа: Работа не волк"

  • Upload
    yandex

  • View
    1.647

  • Download
    3

Tags:

Embed Size (px)

DESCRIPTION

Выбор работы — это то с чем сталкивался каждый. Рассказ о технологиях помощи в поиске работы, существующих в Яндексе вне программ найма.

Citation preview

Page 1: Александр Савин, Михаил Коровкин "Яндекс.Работа: Работа не волк"

Александр Савин, Михаил Коровкин Разработчики отдела вертикальных сервисов

Яндекс.Работа: Работа не волк

Я.Субботник, Санкт-Петербург, 1 декабря 2012

Page 2: Александр Савин, Михаил Коровкин "Яндекс.Работа: Работа не волк"

пословица

Работа не волк, в лес не убежит

Яндекс.Работа

Page 3: Александр Савин, Михаил Коровкин "Яндекс.Работа: Работа не волк"

3

http://rabota.yandex.ru/

или «Работа» в поиске Яндекса (Гугла ;)

Page 4: Александр Савин, Михаил Коровкин "Яндекс.Работа: Работа не волк"

4

Мы рассчитывали на

• До 10^3 источников данных (Россия, Украина, Беларусь и Казахстан)

• До 10^7 вакансий • До 20% обновляется ежедневно (небольшая скорость)

• Аудиторию до 10^6 пользователей в день, • До 100rps на поисковый кластер • Рост 2х в год

Page 5: Александр Савин, Михаил Коровкин "Яндекс.Работа: Работа не волк"

Как мы делали Back-end

Page 6: Александр Савин, Михаил Коровкин "Яндекс.Работа: Работа не волк"

6

Extract, Transform, Load (ETL) процесс (Java)

Feeds  

Extrac,on  Unifica,on  

Index  

Clusteriza,on  

Search  

Index  

Но не все так просто

xscript  

Page 7: Александр Савин, Михаил Коровкин "Яндекс.Работа: Работа не волк"

7

На схеме не отражены

• Фильтрация контента • Кэширование данных сторонних сервисов • Интеграция: Яндекс.Карты, Мой Круг • Раскладка индекса и балансировка • Сбор информации о компаниях • Колдунщики в поиске Яндекса (ого-го)

Частности позже, сейчас о том, как делали поиск

Page 8: Александр Савин, Михаил Коровкин "Яндекс.Работа: Работа не волк"

8

Поиск вакансий: специфика

• Поиск по параметрам (зарплата, график работы)

• Поиск по тексту («такси», «1с», «с проживанием»)

• Желательно отсутствие пустых выдач • Региональность • Схожесть/дублирование объявлений

Page 9: Александр Савин, Михаил Коровкин "Яндекс.Работа: Работа не волк"

9

Мы обернули Яндекс.Сервер

http://api.yandex.ru/server/ в Java

Можно использовать Sphinx

http://sphinxsearch.com

Но у нас 500 разработчиков рядом + морфология

Page 10: Александр Савин, Михаил Коровкин "Яндекс.Работа: Работа не волк"

10

«хочю работать чтобы была хорошая зарплата»

company:”Газпром”+profession:”менеджер” +region:”Москва”+salary:150000

Используем предразбор запроса пользователя

Page 11: Александр Савин, Михаил Коровкин "Яндекс.Работа: Работа не волк"

11

Разбор

• Учитывает, что поиск происходит в конкретной области

• Предполагается, что в конфликтной ситуации позволит выбрать лучшее решение («красный куб»)

• Легко локализируется («робота лiкарь») • Может не все знать («электрик 4 группа допуска»)

Page 12: Александр Савин, Михаил Коровкин "Яндекс.Работа: Работа не волк"

12

Пример

нейтральное  

«работа водителем грузовика 1,5 тонны в москве»

профессия  

регион  

«работа в газпроме»

нейтральное   компания  

Page 13: Александр Савин, Михаил Коровкин "Яндекс.Работа: Работа не волк"

13

Плюсы и минусы • Можем искать разными способами (по заголовку, по имени компании, с измененным регионом), но тратим ресурсы

• Поток запросов с Яндекса – ищем сокращенно

• О! Кешируется («работа водитель» и «вакансии водитель срочно»)

• Ошибки? («работа насос») • Еще ошибки? Подвел менеджер? - Мониторим!

Page 14: Александр Савин, Михаил Коровкин "Яндекс.Работа: Работа не волк"

14

Page 15: Александр Савин, Михаил Коровкин "Яндекс.Работа: Работа не волк"

Французская пословица

Дьявол кроется в деталях

Частности

Page 16: Александр Савин, Михаил Коровкин "Яндекс.Работа: Работа не волк"

16

Детали

•  Чего же хочет пользователь?

•  Как повысить отказоустойчивость?

•  Как обрабатывать данные быстрее?

•  Как снизить число пустых выдач?

Page 17: Александр Савин, Михаил Коровкин "Яндекс.Работа: Работа не волк"

17

Релевантность

релевантность = зарплата + популярность компании + дата создания + полнота описания +

Page 18: Александр Савин, Михаил Коровкин "Яндекс.Работа: Работа не волк"

18

Я.Метрика

Количество кликов с 1-ой страницы увеличилось на 12%

Page 19: Александр Савин, Михаил Коровкин "Яндекс.Работа: Работа не волк"

19

Барьер

Indexer  

Мой  Круг  Геоданны

е  

External  service  №1  

External  service  №2  

External  service  №3  

Index  

Page 20: Александр Савин, Михаил Коровкин "Яндекс.Работа: Работа не волк"

20

Инкрементальная индексация

Feeds  

Index  

Indexer   DB  

New  Feeds  

Index  

Indexer   DB  

Old  Feeds  

all

raw

unified

new new raw

(new +

old) unified

~10%

~90%

all unified all unified

3 часа 8 часов

Full indexation Incremental indexation

Page 21: Александр Савин, Михаил Коровкин "Яндекс.Работа: Работа не волк"

21

Динамические фильтры

Количество пустых выдач сократилось с 6% до 3%

Page 22: Александр Савин, Михаил Коровкин "Яндекс.Работа: Работа не волк"

22

Динамические фильтры - выбор метро

Page 23: Александр Савин, Михаил Коровкин "Яндекс.Работа: Работа не волк"

23

Расширенный региональный запрос

CTR такой же, как и у «обычного» колдунщика

Page 24: Александр Савин, Михаил Коровкин "Яндекс.Работа: Работа не волк"

24

Резюме • Поиск в конкретной области = базовые инструменты + свой напильник

• Часто плохой ответ – лучше, чем неответ • Кэшируйте • Следите за процессом • Лучше пользователю – лучше вам! • Будьте готовы к любым падениям и изменениям

• Не делайте одну и ту же работу дважды

Page 25: Александр Савин, Михаил Коровкин "Яндекс.Работа: Работа не волк"

25

Александр Савин @samehome

[email protected]

Михаил Коровкин @MKorovkin