badoo.com user search: ¿cómo se puede hacer esto?

Badoo.com tiene 56.000.000 perfiles de usuarios. Los perfiles se pueden buscar por sexo, edad, color de cabello, zodiaco, educación, etc., además de la distancia desde mi ciudad natal, el estado en línea y la fecha de registro. Hasta ahora, esto parece factible incluso si se trata de una consulta bastante grande en tablas enormes (56 millones de miembros ...), se puede almacenar en caché de forma general.

Lo interesante es que también tienen una "lista de exclusión" individual (con cada perfil que miras, puedes decir que no quieres conocer a esta persona). Además, tus amigos tampoco aparecen.

La segunda parte interesante son las partes OR de la consulta. Puede buscar a alguien que sea mujer, 25-35, rubia o morena, no fumadora, hetero o bisexual, virgo o gemelas o cáncer, que viva en un radio de 50 km de París y que no sea su amigo y no esté en su lista de exclusión y quién está en línea ahora Muchos OR, consultas pesadas, opciones de clasificación, no hay forma de almacenar en caché o calcular previamente todo esto, pero la búsqueda devuelve 11.298 resultados en milisegundos.

¿Cómo hacen tal cosa con 56 millones de conjuntos de datos y 250K personas que lo usan al mismo tiempo? Índices de búsqueda de texto completo? ¿Bases de datos relacionales? Tiendas de valor clave? ¿Alguien tiene una idea sobre el concepto o la arquitectura?

Respuestas a la pregunta(2)

Su respuesta a la pregunta