2010-11-08 51 views
12

Tôi đã phát triển một ứng dụng chỉ mục và tìm kiếm với thư viện Lucene. nhưng thư viện này có một số hạn chế trong xếp hạng tùy chỉnh trong ngữ cảnh của tôi, ngoài hiệu suất của nó, tôi cần khả năng mở rộng và truy cập vào tất cả các loại tần số từ và v.v. tính năngDự án nguồn mở tìm kiếm văn bản đầy đủ nhất (.NET ưa thích) là gì?

+2

Tôi nhận thấy rằng hiệu suất với Lucene.net thật đáng kinh ngạc, vì vậy thật bất ngờ khi nghe ai đó nói rằng họ gặp sự cố với hiệu suất! (BTW, Lucene có một API khá tốt cho điểm tùy chỉnh vv) –

+0

Tôi không có bất kỳ vấn đề với hiệu suất của lucene nhưng xếp hạng tùy chỉnh là rất khó khăn. – Ehsan

Trả lời

5

http://www.sphinxsearch.com

http://www.sphinxconnector.net/

chính Sphinx là:

  • lập chỉ mục và tìm kiếm cao hiệu suất;
  • công cụ lập chỉ mục và truy vấn nâng cao (mã thông báo văn bản linh hoạt và giàu tính năng, ngôn ngữ truy vấn, một số chế độ xếp hạng khác nhau, v.v ...);
  • thiết lập kết quả nâng cao sau xử lý (SELECT với các biểu thức, WHERE, ORDER BY, GROUP BY vv trên kết quả tìm kiếm văn bản);
  • khả năng mở rộng được chứng minh lên tới hàng tỷ tài liệu, terabyte dữ liệu và hàng nghìn truy vấn mỗi giây;
  • tích hợp dễ dàng với các nguồn dữ liệu SQL và XML và các giao diện tìm kiếm SphinxAPI, SphinxQL hoặc SphinxSE;
  • chia tỷ lệ dễ dàng với tìm kiếm được phân phối.

Để mở rộng một chút, Sphinx:

  • có tốc độ lập chỉ mục cao (tối đa 10-15 MB/giây cho mỗi lõi trên một chuẩn nội bộ);
  • có tốc độ tìm kiếm cao (tối đa 150-250 truy vấn/giây trên mỗi lõi so với 1.000.000 tài liệu, 1,2 GB dữ liệu theo chuẩn nội bộ);
  • có khả năng mở rộng cao (chỉ số cụm được biết đến nhiều nhất trên 3.000.000.000 tài liệu và một điểm bận rộn nhất trên 50.000.000 truy vấn/ngày);
  • cung cấp xếp hạng mức độ liên quan tốt thông qua kết hợp xếp hạng xếp hạng gần đúng và xếp hạng thống kê (BM25);
  • cung cấp khả năng tìm kiếm được phân phối;
  • cung cấp trích đoạn tài liệu (đoạn trích);
  • cung cấp tìm kiếm từ bên trong ứng dụng với giao diện SphinxAPI hoặc SphinxQL và từ bên trong MySQL với công cụ lưu trữ SphinxSE có thể cắm được;
  • hỗ trợ boolean, cụm từ, từ gần và các loại truy vấn khác;
  • hỗ trợ nhiều trường văn bản đầy đủ cho mỗi tài liệu (tối đa 32 theo mặc định);
  • hỗ trợ nhiều thuộc tính bổ sung cho mỗi tài liệu (ví dụ:nhóm, dấu thời gian, v.v.);
  • hỗ trợ từ dừng;
  • hỗ trợ từ điển hình thức từ hình thức;
  • hỗ trợ mã thông báo ngoại lệ;
  • hỗ trợ cả mã hóa một byte và UTF-8;
  • hỗ trợ xuất phát (tiếng Anh, tiếng Nga và tiếng Séc được tích hợp sẵn; và các gốc tiếng Pháp, Tây Ban Nha, Bồ Đào Nha, Ý, Rumani, Đức, Hà Lan, Thụy Điển, Na Uy, Đan Mạch, Phần Lan, Hungary. thư viện libstemmer bên);
  • hỗ trợ MySQL nguyên bản (tất cả các loại bảng, bao gồm MyISAM, InnoDB, NDB, Lưu trữ, v.v. được hỗ trợ);
  • hỗ trợ PostgreSQL nguyên bản;
  • hỗ trợ cơ sở dữ liệu tuân thủ ODBC (MS SQL, Oracle, v.v ...);
  • ... có hơn 50 tính năng khác không được liệt kê ở đây, tham khảo API và hướng dẫn cấu hình!
Các vấn đề liên quan