Социальный поиск Facebook — как это было

1

Руководитель проекта Социальный поиск Facebook Ларс Расмуссен (Lars Rasmussen) рассказал о создании новой системы.

По словам Расмуссена, работа над социальным поиском длилась больше года, а задумка создать нечто подобное возникла ещё раньше. В эру «раннего Facebook» люди могли искать друзей, группы и события, однако система была неполноценной и не могла масштабироваться по мере роста сети.

Задание создать новую систему, которая могла бы работать с графом, была поставлена Марком Цукербергом в 2011 году. Разработка усложнялась тем, что в отличие от стандартного веба, данные баз социальной сети имеют гораздо более детальную структуру, которую не может обслужить поиск по ключевым словам.

В решении проблемы существовало две параллельные задачи: как может выглядеть поисковая система и какая инфраструктура будет лежать в её основе? Различные прототипы интерфейса не устраивали разработчиков своей сложностью и перегруженностью. Финальная идея пришла из стандартных заголовков страниц Facebook. По задумке разработчиков, каждый пользователь должен получить возможность сконструировать свой собственный фильтр для контента Facebook.

Подобная структура должна была идеально вписаться в уже существующую структуру поиска в сети: поисковая строка на каждой странице. Несмотря на то, что до выхода социального поиска поиск на Facebook был весьма ограничен, ежедневно пользователи делали сотни миллионов запросов.

Первый прототип, который имитировал работу будущего поисковика, появился летом 2011 года. Параллельным курсом разрабатывалась инфраструктура. Основная проблема, с которой пришлось столкнуться в проектировании системы: масштаб. 1 миллиард пользователей Facebook в месяц, 240 миллиардов фото, 1 триллион связей различных типов. Ежедневно люди делятся миллиардами фрагментов контента, которые социальный поиск должен индексировать в считанные секунды. Второй сложностью стала избыточность кода, которая уже существовала на момент старта проекта. Как пишет Расмуссен, на момент старта разработки социального поиска, на сайте существовало три независимых поисковых системы. Одна из них — Unicorn обладала теми свойствами, которые были нужны конечному продукту — могла найти ответы на запросы, в которых имелось более одной смысловой связки (например, «рестораны, которые понравились моим друзьям из Индии»). Сначала Unicorn стала основной системой сайта, а затем была доработана, чтобы отвечать требованиям нового социального поиска. В настоящий момент система готова в качестве тестового варианта, однако все ещё не может обработать все посты и комментарии пользователей Facebook.

Ещё одним технически сложным моментом стало внедрение требований приватности пользователей. Этот вопрос отрабатывался на поиске фотографий сотрудников сети ("Photos of Facebook employees"). Система выполняет проверку доступов к контенту пользователей в режиме «реального времени» и чем более сложный запрос она обрабатывает, тем больше действий ей нужно предпринять.

Дизайн новой системы был разработан летом 2012 года, тогда же она впервые поступила в фазу тестирования реальными пользователями.

На будущее команда разработки поиска Facebook запланировала перевод социального поиска на другие языки, а также развитие мобильной версии.