Tôi đã sử dụng Solr thành công được gần 2 năm và chưa bao giờ sử dụng Sphinx, vì vậy tôi rõ ràng là thiên vị. Tuy nhiên, tôi sẽ cố gắng giữ cho nó khách quan bằng cách trích dẫn tài liệu hoặc người khác. Tôi cũng sẽ thực hiện các bản vá cho câu trả lời của mình :-)
Điểm giống nhau:
- Cả Solr và Sphinx đều đáp ứng tất cả các yêu cầu của bạn. Chúng nhanh chóng và được thiết kế để lập chỉ mục và tìm kiếm phần lớn dữ liệu một cách hiệu quả.
- Cả hai đều có một danh sách dài các trang web có lưu lượng truy cập cao đang sử dụng chúng ( Solr , Sphinx )
- Cả hai đều cung cấp hỗ trợ thương mại. ( Solr , Sphinx )
- Cả hai đều cung cấp liên kết API ứng dụng khách cho một số nền tảng / ngôn ngữ ( Sphinx , Solr )
- Cả hai đều có thể được phân phối để tăng tốc độ và dung lượng ( Sphinx , Solr )
Dưới đây là một số điểm khác biệt:
- Solr, là một dự án Apache, rõ ràng là đã được cấp phép Apache2. Sphinx là GPLv2 . Điều này có nghĩa là nếu bạn cần nhúng hoặc mở rộng (không chỉ "sử dụng") Sphinx trong một ứng dụng thương mại, bạn sẽ phải mua giấy phép thương mại (rationale )
- Solr là có thể nhúng dễ dàng trong các ứng dụng Java.
- Solr được xây dựng dựa trên Lucene, là công nghệ đã được chứng minh qua 8 tuổi với khổng lồ cơ sở người dùng (đây chỉ là một phần nhỏ). Bất cứ khi nào Lucene nhận được một tính năng mới hoặc tăng tốc, Solr cũng nhận được nó. Nhiều nhà phát triển cam kết với Solr cũng là người cam kết Lucene.
- Sphinx tích hợp chặt chẽ hơn với các RDBMS, đặc biệt là MySQL.
- Solr có thể được tích hợp với Hadoop để xây dựng các ứng dụng phân tán
- Solr có thể được tích hợp với Nutch để nhanh chóng xây dựng hoàn chỉnh- công cụ tìm kiếm web chính thức với trình thu thập thông tin .
- Solr có thể lập chỉ mục các định dạng độc quyền như Microsoft Word, PDF, v.v. . Sphinx không thể .
- Solr đi kèm với một trình kiểm tra lỗi chính tả .
- Solr đi kèm với hỗ trợ khía cạnh khác . Tạo khuôn mặt trong Sphinx mất nhiều công hơn .
- Sphinx không cho phép cập nhật chỉ mục một phần cho dữ liệu trường .
- Trong Sphinx, tất cả id tài liệu phải là số nguyên khác 0 không dấu duy nhất số . Solr thậm chí không yêu cầu một khóa duy nhất cho nhiều thao tác và các khóa duy nhất có thể là số nguyên hoặc chuỗi.
- Solr hỗ trợ thu gọn trường (hiện tại chỉ là một bản vá bổ sung) để tránh trùng lặp các kết quả tương tự. Sphinx dường như không cung cấp bất kỳ tính năng nào như thế này.
- Trong khi Sphinx được thiết kế để chỉ truy xuất id tài liệu , trong Solr, bạn có thể trực tiếp lấy toàn bộ tài liệu với khá nhiều loại dữ liệu, giúp tài liệu độc lập hơn với bất kỳ kho dữ liệu bên ngoài nào và giúp tiết kiệm thêm chi phí.
- Solr, ngoại trừ khi được sử dụng được nhúng, chạy trong vùng chứa web Java
chẳng hạn như Tomcat hoặc Jetty, yêu cầu cấu hình và điều chỉnh cụ thể bổ sung
(hoặc bạn có thể sử dụng Cầu tàu đi kèm
và chỉ cần khởi chạy nó với
java -jar start.jar
). Sphinx không có cấu hình bổ sung.
Các câu hỏi liên quan: