2011-11-29 29 views
9

Tôi đang cố gắng tìm kiếm ngôn ngữ tự nhiên tốt trong một trang web và cố gắng hiểu những ưu điểm của Apache Solr vs Xapian. Xapian có vẻ dễ thiết lập hơn. Cả hai cung cấp tìm kiếm ngôn ngữ tự nhiên tốt? Bất kỳ sự hiểu biết nào được đánh giá caoXapian vs Apache Solr

+3

điều này có thể hữu ích: http://stackoverflow.com/questions/2488793/solr-vs-xapian-which-one-gived-you-the-more-meaningful-results – javanna

+1

Làm cách nào để bạn xác định "tìm kiếm ngôn ngữ tự nhiên "? Có phải đó là một Siri của Apple như tương tác, ví dụ: "Tìm tôi ...", "Cái gì ..." và vân vân ...? – Mikos

Trả lời

7

Xapian giống với Lucene, một thư viện mà bạn tích hợp với ứng dụng của mình. Nếu bạn có ứng dụng C++ thì Xapian có thể phù hợp hơn. Nếu bạn có một ứng dụng Java, Lucene gần như chắc chắn là lựa chọn tốt nhất.

Nếu bạn muốn có một máy chủ tìm kiếm, sau đó so sánh Omega (được xây dựng trên Xapian) với Solr (được xây dựng trên Lucene). Tôi đã không sử dụng Omega hoặc Xapian, nhưng Solr có một vài tính năng mà tôi đã đến để phụ thuộc vào, đặc biệt là các chuỗi phân tích cho mỗi lĩnh vực. Đó là một ý tưởng tuyệt vời, và một điều mà tôi ước tôi đã nghĩ đến khi tôi đang làm việc trên Ultraseek.

Thật dễ dàng để mở rộng chuỗi phân tích Solr với lớp Java của riêng bạn. Tôi hy vọng rằng sẽ khó khăn hơn trong C++ với Omega/Xapian.

Hai động cơ sử dụng các mô hình liên quan cơ bản khác nhau. Xapian là một công cụ xác suất, Lucene là một công cụ không gian vectơ. Tôi đã thấy cả hai mô hình được điều chỉnh để hoạt động tốt, vì vậy đó có thể không phải là lý do để quyết định.

Cộng đồng Solr/Lucene lớn và rất hữu ích.