Vespa so với ElasticSearch
(tech.okcupid.com)-
Lý do OkCupid chọn Vespa làm công cụ tìm kiếm mã nguồn mở
-
Họ cần thay đổi đối tượng hẹn hò được đề xuất theo bảng xếp hạng thời gian thực, nhưng hệ thống matching hiện tại khó phản ánh nhanh trạng thái người dùng liên tục thay đổi
-
ElasticSearch không hỗ trợ cập nhật từng phần trong bộ nhớ
→ Tài liệu phần lớn là tĩnh, nhưng thông tin người dùng (like, kết nối/bỏ qua với người khác, nhắn tin) lại liên tục thay đổi một cách động
- Vespa: công cụ tìm kiếm mã nguồn mở cho dữ liệu lớn (được tối ưu cho mục đích phục vụ hơn là phân tích dữ liệu)
→ Hỗ trợ cập nhật từng phần trong bộ nhớ mà không cần lập chỉ mục lại toàn bộ tài liệu (có thể xử lý 40~50K lượt cập nhật mỗi giây trên mỗi node)
→ Cung cấp framework xếp hạng linh hoạt để xử lý ngay tại thời điểm truy vấn
→ Tích hợp trực tiếp với các mô hình machine learning như TensorFlow
→ Khi gọi REST có thể truy vấn bằng YQL (Yahoo Query Language)
→ Có thể tùy biến logic bằng Java component
→ Về khả năng mở rộng, không cần phải bận tâm đến shard. Mỗi khi thêm/xóa node, dữ liệu sẽ tự động được khôi phục và phân phối lại từ replica
- Vespa phù hợp hơn với nội bộ OkCupid
→ OkCupid ghép cặp con người bằng cách tổng hợp nhiều loại thông tin khác nhau về người dùng
→ Có hơn 100 bộ lọc và hơn 100 tiêu chí sắp xếp, lại còn liên tục được bổ sung, nên Vespa phù hợp để hỗ trợ kiểu workflow này
→ Việc ghi dữ liệu và truy vấn cũng tương tự hệ thống matching hiện có
→ Framework xếp hạng linh hoạt và trực quan hơn nhiều
→ So với cấu trúc truy vấn khó hiểu của ElasticSearch, khả năng biểu đạt của YQL tốt hơn
→ Tính năng triển khai dữ liệu tự động phù hợp với các nhóm nhỏ
2 bình luận
Bài giới thiệu bằng tiếng Hàn về lịch sử và giá trị của Vespa
Yahoo Vespa mã nguồn mở https://web.archive.org/web/20210922122357/…
( tính đến năm 2023, blog đã biến mất nên được thay bằng liên kết Wayback Machine )
"Vespa cũng là tên một thương hiệu xe tay ga, nhưng đồng thời là viết tắt của Vertical Search Plaform"
"Trong số các công nghệ cốt lõi mà Yahoo sở hữu và dường như tuyệt đối sẽ không công khai, Vespa luôn được nhắc đến như một cái tên nằm trong top đầu"
"Vespa là một bộ thành phần của nền tảng xử lý nội dung tích hợp lấy công cụ tìm kiếm làm trung tâm. Nói đơn giản thì có thể xem nó là một công cụ tìm kiếm, nhưng so với các công cụ tìm kiếm thông thường như Solr hay Elastic, nó có nhiều thành phần phụ trợ xung quanh hơn hẳn."
Bài khá dài, nhưng ở phần sau có trình bày từ kiến trúc hệ thống của OkCupid khi thực tế áp dụng Vespa cho đến các truy vấn tìm kiếm (YQL), nên hãy tham khảo bài gốc.
Như phần cuối bài cũng nói, ElasticSearch được dùng nhiều hơn hẳn và nhược điểm của Vespa là cộng đồng vẫn chưa lớn.
Tuy vậy, như có thể thấy ở đây, với những bài toán tìm kiếm cần liên tục thay đổi, Vespa cũng có thể là một lựa chọn thay thế rất tốt.
Ví dụ được đưa ra là ghép cặp hẹn hò, nhưng các tìm kiếm trong thương mại điện tử ngày nay cũng cần thay đổi theo thời gian thực thì mới có thể cho ra kết quả tốt.