Thứ Tư, 27 tháng 6, 2012

QUÁ TRÌNH LẬP CHỈ MỤC VỚI THƯ VIỆN LUCENE


I.1.               Lập Chỉ Mục – Index của Lucene

I.1.1.           Phương pháp lập chỉ mục

Một Documemt có nhiều fields, mỗi fields có nhiều value.Và sau đây là hình vẽ biểu diển hoạt động lập Index của Lucene
Sau khi tách các field của document (3 field tạo nên 1 document) sau đó sẽ tiến hành phân tích và ghi dữ liệu vào Index 



Steps 1 :
Chọn đường dẫn lưu Index
Steps 2 :
Tạo  Analyzer cho tài liệu
Steps 3 :
Tạo Document và thêm Fields
Steps 4 :
Lấy Index Writer and thêm Document
Steps 5 :
Đóng Index

           

                      

Hình 7 : Mô hình  lập Index  của Lucene


I.1.2.           Thành phần  lập chỉ mục Index

·         Directory
1.      Lucene cung cấp nhiều cách để lưu trữ Inverted Index như database,cơ sở dữ liệu Index
2.      IndexWriter  IndexSearcher cung cấp đồng  thời các kiểm soát đến ứng dụng để chắc chắn sự trọn vẹn của chỉ mục
·         Analyzers
1.      Lucene và nhà phát triển thứ 3 đã phát triển tập hợp phong phú các phân tích xác định trước  với những hỗ trợ của các ngôn ngữ khác nhau
2.      Chức năng chính của phân tích là trả về 1 Token Stream .Một  Token Stream thực hiện như 1 đường ống thác đi qua   Tokenizer tạo bởi tập hợp các token filter khác 
3.      Tokenizer phân tích các field của tài liệu , loại bỏ các cú pháp thành phần  và tạo ra 1 dãy các token.Token gồm có <text, type, start, length, positionIncrement>.s
4.      Token filter xử lí , thay đổi, tập hợp các thành phần trong dãy token stream.Ví dụ nổi bật như là Token filter như là loại bỏ các tiếp đầu ngữ , loại bỏ các stop word …

Hình 8 : Quá trình Analyser
Chức năng Analyser bao gồm 2 chức năng là  TokenizerToken Filters
·         Tokenizer nhiệm vụ tách các  kí tự vào Token
·         Token Filters nhiệm vụ sửa đổi các Token
Bao gồm :
·         WhitespaceTokenizer
·         StandardTokenizer
·         LowerCaseFilter
·         StopFilter and more...

Vidu 4 : Xử lí ngôn ngữ tiếng Anh
  Trong tài liệu tiếng Anh
StandardTokenizer & Analyzer sẽ xử lí như sau :
·         Khoảng trống và dấu chấm câu  xử lí trên các Token khác nhau
·         Loại bỏ những từ chung ít liên quan đến nội dung văn bản như “a”,”the”...
·         Nó xử lí  "AT&T", "I.B.M.", etc. như là 1 Token
·         Email address: quangsoft@gmail.com  không tách ra các trường như “quangsoft” , “@”..
·         Streaming :  lập chỉ mục của các từ khi chúng xuất hiện chính xác  có thể có vấn đề trong tìm kiếm.Xóa bỏ tiền tố và hậu tố
Vidu 5 : Về Streaming
1.       book, books →book
2.       like, liked, liking →lik
3.       take, took, taken, taking →t ?
·         Trong quá trình tách từ Lucene còn sử dụng từ điển Lemma  hỗ trợ
Vidu 6 : Sử dụng từ điển
1.      book, books →book
2.      like, liked, liking →like
3.      take, took, taken, taking → take
Hiện nay từ điển từ điển Lemma  trong Lucene hỗ trợ cho 18 loại ngôn ngữ và sử dụng công nghê Rosette Linguistics Platform để xử lí việc tách từ tự động cho các  các ngôn ngữ này.

Hình 9 : Các ngôn ngữ hỗ trợ trong từ điển

Hình 10 : Mô hình Rosette Linguistics Platform

·         Field
Giúp Lucene có thể lưu trữ các thuộc tính bổ sung cho mỗi tài liệu trong chỉ mục.Mục đích của Field gồm có :
1.      Khả năng giới hạn tìm kiếm trên những đối tượng meta-data xác định (như chỉ có tiêu đề , tác giả..)
2.      Khả năng lưu trữ dữ liệu để xác định các tài liệu
Tạo ra 1 Fields gồm 3 lựa chọn :
1.      Field.Store: YES or NO : Chỉ ra nội dung cần được lưu trữ , NO có nghĩa là nội dung chỉ được phân tích nhưng không để tìm kiếm.YES cho các thuộc tính xác định. Ví dụ như bao gồm : ID, tên file , tài liệu, ngày thêm , kích thước tài liệu..
2.      Field.Index : Giá trị chính được ANALYZED.NO chỉ ra lĩnh vực nội dung không được ANALYZED, nó cũng không thể tìm kiếm thuộc tính như vậy , ANALYZED được sử dụng cho nội dung được tìm kiếm
3.      Field.TermVector : Cho phép tinh chỉnh các Term vector được giữ trong chỉ mục

Không có nhận xét nào:

Đăng nhận xét