Hiển thị các bài đăng có nhãn Lập trình Lucene. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Lập trình Lucene. Hiển thị tất cả bài đăng

Thứ Hai, 12 tháng 9, 2011

XÂY DỰNG ỨNG DỤNG SEARCH ENGINE VỚI LUCENE


Mô tả ứng dụng : 

Mục tiêu của  là xây dựng ứng dụng dựa trên mô hình hệ thống  Search Engine,bao gồm đủ 3 phần của 1 hệ thống .
Mục tiêu  xây dựng 1 hệ thống hỗ trợ người dùng trên máy tính cá nhân với chức năng  tìm kiếm nội dung tài liệu (doc,docx, pdf, html..) và hỗ trợ 1 số bảng mã tiếng việt như VNI..
Ứng dụng phải tìm kiếm nhanh và chính xác , ứng dụng chạy không sử dụng nhiều tài nguyên CPU.


Phát triển trên ứng dụng nền .NET , ngôn ngữ C# với công cụ phát triển Visual Studio 2008

Và sau đây là kết quả thu được : 


Hình 1 : Giao diện quản lí bọ spyder


Hình 2 : Giao diện tìm kiếm của ứng dụng


Hình 3 : Ứng dụng chạy trên thanh Taskbar

ü  Bước đầu  , Tôi đã xây dựng ứng dụng đáp ứng được  những mục tiêu đặt ra.Ứng dụng hỗ trợ hầu hết những định dạng cơ bản như .pdf,.html.docx,.xml..và xây dựng thêm phần robot spyder tự động tìm kiếm file tài liệu và lưu trữ thông tin hỗ trợ tìm kiếm, phần bóc tách nội dung tài liệu,xây dựng thêm một số lớp  hỗ trợ xử lí tài liệu Tiếng Việt,ứng dụng chạy không sử dụng nhiều tài nguyên CPU ...Phát triển ứng dụng theo hướng mở giúp mọi người có thể viết thêm nhiều hỗ trợ định dạng file tài liệu và nhiều xử lí ngôn ngữ hơn nữa trong thời gian đến.
Nguồn : quangsoft@gmail.com


THÀNH PHẦN CỦA LUCENE API


THÀNH PHẦN CỦA LUCENE API


Trong thư viện Lucene gồm 4 gói thư viện chính :
1.      org.apache.lucene.document
2.      org.apache.lucene.analysis
3.      org.apache.lucene.index
4.      org.apache.lucene.search
và chia làm 2 thành phần chính :
1.      Các thành phần chính tạo chỉ mục : Hỗ trợ các chức năng xử lí , tạo chỉ mục từ  file văn bản đầu vào và kết quả cuối cùng là tập các chỉ mục phục vụ cho mục đích tìm kiếm.Thành phần này chỉ xử lí các kí tự, hay text thuần sau khi tách nội dung.Và dựa vào trường thông tin của dữ liệu mà từ đó cho phép thiết lập hệ số cho từng trường thông tin để tối ưu hóa việc tìm kiếm.Bao gồm các chức năng cơ bản sau :
·         Directory: cho phép định nghĩa vùng nhớ, xác định nơi lưu trữ trên bộ nhớ ngoài và bộ nhớ trên RAM trong quá trình tạo chỉ mục
·         Document và Field: định nghĩa tài liệu và các trường thông tin của tài liệu sử dụng cho lập chỉ mục, nó cũng sử dụng cho việc lấy kết quả trả về cho thành phần Tìm kiếm
·         Analyzer: thực hiện chức năng xử lý và tách văn bản để lấy nội dung, chuẩn hóa, loại bỏ mục từ không cần thiết,… để chuẩn bị cho việc lập chỉ mục 
·         IndexWriter: là phần chính trong thành phần Tạo chỉ mục, nó thực hiện việc tạo mới hoặc mở chỉ mục, sau đó thực hiện thêm mới hoặc cập nhật nội dung của chỉ mục 

2.      Các thành phần chính  tìm kiếm :
·         Term: Term là một  đơn vị cơ bản của tìm kiếm, tương tự như thành phần Field, Term cũng bao gồm tên và giá trị tương ứng.
·         Query: bao gồm nhiều loại truy vấn khác nhau, nó chứa nhiều phương thức, nhưng hầu hết đều quan tâm đến việc thiết lập chỉ số Boost, cho phép Lucene hiểu truy vấn con nào là quan trọng hơn.
·         IndexSearcher: cho phép tìm kiếm trên tập chỉ mục do IndexWriter tạo ra, đây là thành phần chỉ thực hiện nhiệm vụ mở tập chỉ mục, không cho phép chỉnh sửa hay thay đổi. Có nhiều phương thức tìm kiếm, một trong số đó là lớp thành phần thực thi Searcher, với cách đơn giản là cung cấp một Querytruy vấn, số lượng các liên kết cần trả về, và kết quả trả về sẽ là tập các đối tượng TopDoc.
·         TopDoc: là một lớp đơn giản, dùng cho việc chứa các thứ hạng cao nhất của N tài liệu có liên quan đến truy vấn. Với mỗi đối tượng trong danh sách này sẽ cho một docID dùng để liên kết đến tài liệu nhận về.