2010-08-05 28 views
6

Badoo.com có ​​56.000.000 hồ sơ người dùng. Hồ sơ có thể được tìm kiếm theo giới tính, tuổi tác, màu tóc, hoàng đạo, giáo dục, v.v., cộng với khoảng cách từ quê hương của tôi, trạng thái trực tuyến và ngày đăng ký. Cho đến nay, điều này dường như có thể thực hiện được ngay cả khi đó là một số truy vấn trên các bảng lớn (56 triệu thành viên ...), nó có thể được lưu trữ theo cách tổng quát.tìm kiếm người dùng badoo.com - cách này có thể được thực hiện?

Phần thú vị là họ cũng có một "danh sách loại trừ" riêng lẻ (với mọi hồ sơ bạn xem, bạn có thể nói rằng bạn không muốn gặp người này). Ngoài ra, bạn bè của bạn cũng không hiển thị.

Phần thú vị thứ hai là các phần OR của truy vấn. Bạn có thể tìm kiếm ai đó là phụ nữ, 25-35, tóc vàng HOẶC brunette, không hút thuốc, dị tính HOẶC lưỡng tính, virgo HOẶC cặp song sinh HOẶC ung thư, sống trong bán kính 50KM của Paris và không phải là bạn của bạn và không nằm trong danh sách loại trừ của bạn và ai đang trực tuyến. Nhiều OR, truy vấn nặng, tùy chọn sắp xếp, không có cách nào để lưu vào bộ nhớ đệm hoặc tính toán trước tất cả điều này, nhưng tìm kiếm trả về kết quả là 11.298 tính bằng mili giây.

Làm cách nào để thực hiện việc này với 56 triệu bộ dữ liệu và 250 nghìn người sử dụng cùng một lúc? Chỉ mục tìm kiếm toàn văn bản? Cơ sở dữ liệu quan hệ? Cửa hàng giá trị khóa? Có ai có ý tưởng về khái niệm hoặc kiến ​​trúc không?

+0

Hoặc trang web thực sự không có 56 triệu người dùng và họ chỉ nhổ ra một nhóm ngẫu nhiên các kết quả bất kỳ lúc nào bạn thực hiện tìm kiếm. Trang web hẹn hò trực tuyến có hồ sơ giả mạo và không có hoạt động thực sự? Bạn không nói! –

Trả lời

3

Chúng có nhiều khả năng được xây dựng bằng cách sử dụng công nghệ lập chỉ mục đảo ngược như Lucene hoặc Sphinx. Nếu bạn đang tìm cách xây dựng một giải pháp, đề xuất của tôi sẽ là Apache Solr (máy chủ tìm kiếm được xây dựng bằng Lucene). Nó rất phổ biến, có một cộng đồng OSS đang hoạt động và được sử dụng bởi các trang web như Netflix, Cnet, v.v.

1

Tôi khuyên bạn nên xem Badoo Dev Blog. Nó bằng tiếng Nga nhưng google dịch giúp rất nhiều.

Tóm lại, họ đang sử dụng MySQL phân tán và ghi nhớ. Đây là một số badoo evolution list.

+0

vui lòng sửa liên kết chết –

Các vấn đề liên quan