2. 05/12/13
2
Q&A
LOGO
Định nghĩa
Nutch là một search engine mã nguồn mở
cài đặt trên ngôn ngữ lập trình Java.
Nutch cung cấp tất cả các công cụ cần
thiết để cho phép ta tạo ra một search
engine (SE) của riêng mình.
Nutch được xây dựng trên nền tảng
lưu trữ và tính toán phân tán, do vậy
Nutch có thể được mở rộng để hoạt
động trên các tập dữ liệu lớn.
3. 05/12/13
3
Q&A
LOGO Nền tảng phát triển của
Nutch
Lucene: b th vi n ngu n m có ch cộ ư ệ ồ ở ứ
năng xây d ng ch m c và tìm ki m.ự ỉ ụ ế
Hadoop: cung c p m t n n t ng tính toánấ ộ ề ả
phân tán v i m t h th ng t p tin phân tán.ớ ộ ệ ố ậ
Tika: m t b công c dùng đ phát hi n và rútộ ộ ụ ể ệ
trích các metadata và nh ng n i dung văn b nữ ộ ả
có c u trúc t nh ng lo i tài li u khác nhau.ấ ừ ữ ạ ệ
Nutch s d ng Tika đ phân tách các lo i tàiử ụ ể ạ
li u khác nhau nh m s d ng cho quá trìnhệ ằ ử ụ
t o ch m c.ạ ỉ ụ
4. 05/12/13
4
Q&A
LOGO
Tính năng của Nutch
Hỗ trợ nhiều protocol khác nhau như
http, ftp, file.
Hỗ trợ các loại tài liệu khác nhau như
Plain text, HTML, XML, JavaScript,...
Chạy trên hệ thống phân tán: do dựa
trên nền tảng Hadoop nên Nutch có
khả năng mở rộng.
Linh hoạt với các plugin: phát triển
hay mở rộng tính năng của Nutch.
6. 05/12/13
6
Q&A
LOGO
Kiến trúc của Nutch
Nutch bao gồm hai thành phần là
trình thu thập thông tin (Crawler) và
trình tìm kiếm thông tin (Searcher).
Crawler: lấy dữ liệu từ các trang và
tạo ra bộ chỉ mục ngược (inverted
index).
Searcher sử dụng inverted index để
trả lời câu truy vấn query.
7. 05/12/13
7
Q&A
LOGO
The Crawler
Trình thu thập thông tincrawler bao
gồm bốn thành phần là
Cơ sở dữ liệu web hay viết tắt là webdb
Các phân đoạn (segments).
Bộ chỉ mục index
Công cụ thu thập thông tin crawl tool
8. 05/12/13
8
Q&A
LOGO
Web Database (WebDB)
Cấu trúc dữ liệu lưu trữ lâu dài (persistent) để
phản ánh cấu trúc và tính chất của đồ thị web mà
đã thu thập được.
Chỉ được sử dụng bởi crawler và không có vai trò
gì trong quá trình tìm kiếm searching.
Lưu trữ hai kiểu thực thể:
Pages: trang trên web
Links: tập các liên kết từ một trang đến một
trang khác
Trong đồ thị webDB, nodes là các trang pages và
cạnh là các liên kết links.
9. 05/12/13
9
Q&A
LOGO
Segments
Segments: tập các trang được
crawler tìm và đánh chỉ mục trong
một lần thực thi.
Giới hạn thời gian tồn tại (được đặt tên
theo ngày và thời gian tạo ra).
Fetchlist hay tập các trang tìm thấy
cho một segment là một tập các URL
để crawler tìm.
10. 05/12/13
10
Q&A
LOGO
Index
Nutch sử dụng Lucene để đánh chỉ
mục
Là chỉ số đảo ngược (inverted index)
của tất cả các trang mà hệ thống đã
truy xuất.
Mỗi segment có sáu chỉ mục
Inverted index được tạo ra bằng cách
trộn tất cả các chỉ số của segment
12. 05/12/13
12
Q&A
LOGO chu kỳ
generate/fetch/update
Generate: một danh sách các URL sẽ được phát sinh ra để
dùng trong quá trình nạp. Các URL được chọn là các URL
trong webdb có tình trạng là “chưa nạp” hoặc “đã lỗi thời”.
Số lượng URL được phát sinh ra trong danh sách có thể bị
giới hạn lại theo ý muốn
Fetch:một trình tự động (fetcher) tự động tải các tài liệu từ
danh sách URL được phát sinh ra từ bước generate
Parse: dữ liệu nhị phân có được từ giai đoạn nạp sẽ được
phân tách ra để trích lấy các thông tin như các link,
metadata và các thông tin văn bản khác để dùng cho việc
tạo inverted index sau này.
Update: trạng thái của mỗi URL được nạp cũng như danh
sách các URL mới có được từ quá trình parse đều sẽ được
trộn vào phiên bản trước của crawldb để tạo ra một phiên
bản mới