2012-02-17 24 views
7

Tôi hiện đang sử dụng Java lucene cho một trong các dự án và nhận được loại OK về hiệu suất. Tôi đang tìm kiếm tùy chọn C/C++ cho lucene và đi qua CLucene trên sourceforge.Sử dụng CLucene vs java lucene

Nhưng tôi muốn kiểm tra xem CLucene là như ổn định và đáng tin cậy như Java Lucene và có tất cả các tính năng được hỗ trợ bởi Java Lucene, cũng là nó Giấy phép Apache và tích cực hỗ trợ? nếu CÓ lý do tại sao tôi không có tùy chọn để tải về CLucene trên apache Lucene trang web (trên apache lucene trang web tôi có tùy chọn lucene.net mặc dù).

Muốn hiểu thêm về cách sử dụng CLucene cho phần mềm doanh nghiệp.

Trả lời

14

CLucene có sẵn theo Giấy phép Apache phiên bản 2.0 và được lưu trữ tại nguồn lực. Nó không thể tải xuống từ trang web Lucene vì CLucene là một dự án độc lập. Tuy nhiên, Lucy, là một cổng C của Lucene (nhắm mục tiêu các ngôn ngữ động), có sẵn từ trang web Lucene vì nó là một tiểu dự án của Lucene. Tương tự áp dụng cho Lucene.NET.

Trừ khi bạn buộc phải không sử dụng ngôn ngữ JVM, tôi khuyên bạn nên sử dụng phiên bản Java.

Tất cả các phát triển được thực hiện cho phiên bản Java và sau đó đôi khi được quay trở lại các cổng khác như CLucene. Kết quả là, rất nhiều tính năng hữu ích vẫn chỉ có sẵn trong phiên bản Java (ví dụ các truy vấn chức năng không có sẵn trong CLucene).

Về hiệu suất, C/C++ đôi khi có thể là nhanh hơn so với Java, nhưng có rất nhiều mẩu mã trong phiên bản Java mà sử dụng các thuật toán rất gọn gàng để cải thiện hiệu suất, chẳng hạn như:

Cuối cùng nhưng không kém phần quan trọng, phiên bản Java là phiên bản được thử nghiệm nhiều nhất và được sử dụng trong nhiều trang web có lưu lượng truy cập rất cao như LinkedIn hoặc Twitter.

+2

Lucene.Net và Lucy là các dự án độc lập ngay bây giờ. Lucy không nhanh hơn Java Lucene trong nhiều trường hợp và nó không được thiết kế để tương thích chỉ mục (tức là chỉ mục bạn tạo bằng java lucene sẽ không chạy với Lucy) - đó là trực tiếp từ trang web của Lucy http://incubator.apache.org/ lucy/ – Prescott

+0

Thật không may lucene không được nhúng vào chương trình khác.Chỉ mục văn bản đầy đủ rất hữu ích trong nhiều chương trình. – Lothar

9

CLucene ổn định và đáng tin cậy và dưới cùng giấy phép với phiên bản Java (ASL). Nó không được liên kết từ các trang web Apache vì dự án này không thuộc ô ASF.

CLucene là cổng theo dòng của Java Lucene, và là mã gốc (không chạy trên máy ảo và làm bộ nhớ riêng của nó allocs/deallocs trong số những thứ khác) nó thường nhanh hơn Java Lucene. Một số điểm chuẩn (một chút cũ bây giờ tho) cho thấy điều đó. Là một cổng chính xác, nó tương thích 100% với các chỉ mục Lucene của Java và ngược lại.

Hạn chế duy nhất để sử dụng CLucene là nó không phải là hoàn toàn được cập nhật với phiên bản Lucene hiện hành.

+0

trang cLucene cho biết sử dụng phiên bản ổn định hơn với api cũ hơn (1.9.1) hoặc mới hơn nhưng có khả năng kém tin cậy hơn từ đầu. Bạn có biết làm thế nào không ổn định là đầu? Ngoài ra, tôi không thấy bất kỳ trang nào về người đang sử dụng cLucene. Bạn có biết không? –

+0

Bản phát hành 2.3.2 ổn định, ít nhất là 1-2 năm kể từ khi tôi tham gia tích cực vào sự phát triển của dự án này – synhershko

+0

"Không hoàn toàn cập nhật" trong một cách nói dưới; phiên bản hiện tại của Java Lucene là 6.2.1, trong khi phiên bản CLucene mới nhất dựa trên Java Lucene 2.3.2. Hơn nữa, bản phát hành cuối cùng của CLucene đã hơn 3 năm trước. Nếu không có một số tài trợ nghiêm túc, vì nó đứng ngay bây giờ, có vẻ như không có cách nào để bắt kịp với phiên bản Java. – rustyx

2

Phiên bản mới nhất cho Lucene là 5.2 và thay đổi đáng kể đã được thực hiện đối với định dạng tệp chỉ mục từ 2.3.2, được liệt kê tại https://lucene.apache.org/core/5_2_1/core/org/apache/lucene/codecs/lucene50/package-summary.html#package_description. Tôi không tin rằng có bất cứ điều gì khác có sẵn đó là cập nhật hơn so với CLucene. Đối với Lucy, trang web tuyên bố rằng: hai thư viện không tương thích về định dạng tệp hoặc API và không có kế hoạch thiết lập tính tương thích như vậy.