Badoo.com имеет 56.000.000 профилей пользователей. Профили можно искать по полу, возрасту, цвету волос, зодиаку, образованию и т. Д., А также по расстоянию от моего родного города, онлайн-статусу и дате регистрации. Пока что это кажется выполнимым, даже если это довольно большой запрос к огромным таблицам (56 миллионов членов ...), его можно кэшировать в общем виде.
Интересно то, что у них также есть отдельный «список исключений» (с каждым просмотренным профилем вы можете сказать, что не хотите встречаться с этим человеком). Плюс, твои друзья тоже не появляются.
Вторая интересная часть - это OR-части запроса. Вы можете найти кого-то, кто является женщиной, 25-35 лет, блондинкой или брюнеткой, некурящим, гетеросексуалом или бисексуалом, девой или близнецами или раком, живущим в радиусе 50 км от Парижа и который не является вашим другом и не входит в ваш список исключений и кто сейчас онлайн Многие операционные операции, тяжелый запрос, параметры сортировки, отсутствие способа кэширования или предварительного вычисления всего этого, но поиск возвращает 11.298 результатов в миллисекундах.
Как они делают это с 56 миллионами наборов данных и 250 тысячами людей, которые используют его одновременно? Индексы полнотекстового поиска? Реляционные базы данных? Ключевые магазины стоимости?
У кого-нибудь есть идеи по поводу концепции или архитектуры?