GIỚI THIỆU LUCENE
Lucene là một thư viện cho việc tìm kiếm toàn văn, được phát triển bởi Dough Cutting (hiện đang làm việc cho Apache). Thư viện này cung cấp các hàm cơ bản hỗ trợ cho việc đánh chỉ mục và tìm kiếm. Để có thể sử dụng Lucene, bạn cần phải có sẵn dữ liệu. Dữ liệu có thể là tập hợp các tập tin dạng PDF, Word hay là các trang web HTML… Hoặc là dữ liệu lưu trong các hệ quản trị CSDL như MS SQL Server hay MySQL. Dùng Lucene, bạn có thể tiến hành đánh chỉ mục trên dữ liệu hiện có để sau này có thể thực hiện thao tác tìm kiếm toàn văn trên dữ liệu đó.
Lucene là một thư viện tìm kiếm thông tin có khả năng xử lý và khả năng mở rộng ở mức cao, cho phép chúng ta có thể tích hợp vào các ứng dụng. Lucene là một dự án mã nguồn mở và nguyên thuỷ được phát triển bằng ngôn ngữ Java, ngày nay Lucene được phát triển bằng nhiều ngôn ngữ khác nhau như Delphi, Perl, C#, C++, Python, Ruby và PHP…
Thành phần chức năng chính của Lucene bao gồm hai phần: Thành phần tạo chỉ mục và thành phần tìm kiếm. Đây là hai thành phần quan trọng cho một hệ thống tìm kiếm.
SỨC MẠNH LUCENE
Không phải dễ dàng mà người ta nói : Lucene có thể giúp bạn phát triển công cụ tìm kiếm “giống Google” với năng lực tìm kiếm mạnh mẽ và linh hoạ.
Bởi những ưu điểm vượt bậc của bộ thư viện này hỗ trợ cho việc lập index và tìm kiếm
Hiện nay tồn tại rất nhiều hệ quản trị hỗ trợ cho kỷ thuật tìm kiếm Full Text, trong đó nổi lên 2 hệ quản trị lớn đó là MySQL và Oracle
Tại sao lựa chọn Lucene thay vì hệ quản trị CSDL như MySQL cho yêu cầu bài toán bởi vì :
· Khác với MySQL, dữ liệu được index phải được lưu trữ trong database, trong khi đó Lucene chỉ tạo chỉ mục trên dữ liệu hiện có. Bằng cách này, Lucene có thể tạo chỉ mục cho dữ liệu lưu trữ trong database, trong các thư mục của hệ thống tập tin. Hơn thế nữa, với việc dùng các plug-in về parsing, Lucene có thể đánh chỉ mục cho các tập tin pdf, html, MS Word, etc.
· Câu truy vấn của MySQL bị giới hạn bởi cú pháp của SQL query, trong khi câu truy vấn của Lucene gần với các hệ thống information retrieval hơn. Với Lucene, bạn có thể dùng proximity search, fuzzy search, wildcard search và quan trọng nhất là term boosting có thể giúp rank các kết quả trả về theo mức độ liên quan (relevancy).
· Tốc độ của Lucene tốt hơn so với MySQL trong trường hợp dữ liệu lớn.
Ngoài ra một hệ quản trị cơ sở có hỗ trợ kỷ thuật full text nổi tiếng nữa đó là Oracle Enterprise.Và qua một số thử nghiệm trên cùng hệ thống máy tính và cùng 1 số lượng tài liệu có được kết quả như sau :
· Về tốc độ - Lucene là nhanh hơn
· Máy chủ Oracle bổ sung thêm giấy phép CPU DB, mà là đến nay đắt hơn so với máy chủ Lucene ứng dụng rẻ hơn và bộ nhớ nhiều hơn
· Chỉ số kích thước - chỉ số Lucene nhỏ
· Tính điểm thuật toán: Không thể tùy chỉnh với văn bản Oracle, còn Lucene có thể
· Tiến bộ Lucene : bổ sung thêm một số trường (term) Fuzzy, Synonym, Near tìm kiếm nhanh lên đáng kể
Hiện nay rất nhiều ứng dụng hay website nổi tiếng sử dụng Lucene làm thư viện tìm kiếm như là Thư viện Wiki,HP, eclipe ….
Không có nhận xét nào:
Đăng nhận xét