Tải bản đầy đủ (.doc) (87 trang)

LNGHIÊN CỨU MÁY TÌM KIẾM VÀ XÂY DỰNG THỬ NGHIỆM MÔ PHỎNG MÁY TÌM KIẾM

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.1 MB, 87 trang )

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CÔNG NGHỆ THÔNG TIN
Tel. (84-511) 3736 949, Fax. (84-511) 842 771
Website: itf.ud.edu.vn, E-mail:
LUẬN VĂN TỐT NGHIỆP
NGÀNH CÔNG NGHỆ THÔNG TIN
MÃ NGÀNH : 05115
ĐỀ TÀI:
NGHIÊN CỨU MÁY TÌM KIẾM VÀ XÂY DỰNG THỬ NGHIỆM
MÔ PHỎNG MÁY TÌM KIẾM
SINH VIÊN : PHAN TẤN LUẬN
LỚP : 04T1
CBHD : TS.NGUYỄN THANH BÌNH
ĐÀ NẴNG, 06/2009
LỜI CẢM ƠN
Để hoàn thành được đồ án này, em đã nhận được sự chỉ bảo tận tình
của các Thầy Cô giáo trong khoa Công nghệ Thông tin trường Đại học
Bách Khoa, cùng sự giúp đỡ động viên của gia đình và bạn bè.
Trước tiên em xin chân thành cảm ơn tất cả các thầy cô của trường Đại
học Bách Khoa, Đại học Đà Nẵng đã dạy dỗ và truyền đạt kiến thức cho
em trong thời gian học tại trường.
Em xin chân thành cám ơn Tiến sĩ Nguyễn Thanh Bình, thầy đã tận tình
hướng dẫn góp ý cho em trong quá trình thực hiện đồ án này. Nhờ đó mà
em có thể hoàn thành theo đúng yêu cầu về nội dung của một đồ án tốt
nghiệp.
Em cũng xin được cám ơn những người bạn cùng ngành đã động viên
giúp đỡ em trong suốt thời gian làm đồ án.
Cuối cùng, con xin cảm ơn gia đình đã tạo mọi điều kiện tốt nhất để
bản thân có thể hoàn thành được đồ án đúng hạn.
Mặc dù đã cố gắng hết sức, nhưng vì khả năng và thời gian có hạn, đề


tài nghiên cứu chắc chắn còn nhiều khiếm khuyết. Rất mong các Thầy Cô
giáo chỉ bảo giúp đỡ. Rất mong sự góp ý của bạn bè, đồng nghiệp.
Đà Nẵng, 06/2009
Sinh viên
Phan Tấn Luận
LỜI CAM ĐOAN
Em xin cam đoan:
1. Những nội dung trong báo cáo này là do em thực hiện dưới sự hướng dẫn của
thầy TS.Nguyễn Thanh Bình.
2. Mọi tham khảo dùng trong báo cáo này đều được trích dẫn rõ ràng tên tác giả,
tên công trình, thời gian, địa điểm công bố.
3. Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá,
tôi xin chịu hoàn toàn trách nhiệm.
Sinh viên,
Phan Tấn Luận
NHẬN XÉT CỦA CÁN BỘ HƯỚNG DẪN
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................

.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
NHẬN XÉT CỦA CÁN BỘ DUYỆT
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................

.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
MỤC LỤC
TỔNG QUAN ĐỀ TÀI.....................................................................................1
.I GIỚI THIỆU CHUNG VỀ VẤN ĐỀ NGHIÊN CỨU...................................................1
.I.1. Lịch sử phát triển.....................................................................................................1
.I.2. Giới thiệu về các máy tìm kiếm thông dụng..........................................................2
.I.2.1. Thế giới................................................................................................................2
.I.2.2. Việt Nam..............................................................................................................3
.II LÝ DO CHỌN ĐỀ TÀI.................................................................................................4
.II.1. Mục tiêu và ý nghĩa của đề tài...............................................................................4
.II.2. Nhiệm vụ cần phải thực hiện.................................................................................5
.II.2.1. Xây dựng chức năng..........................................................................................5
.II.2.2. Xây dựng ứng dụng web....................................................................................6
.II.3. Hướng nghiên cứu của đề tài.................................................................................6
.II.3.1. Về mặt lý thuyết..................................................................................................6
.II.3.2. Công cụ xây dựng đề tài....................................................................................6
.II.3.3. Dự kiến kết quả đạt được...................................................................................7
CƠ SỞ LÝ THUYẾT ......................................................................................8
.I LÝ THUYẾT LIÊN QUAN ĐẾN ĐỀ TÀI.....................................................................8
.I.1. Tổng quan hệ thống máy tìm kiếm.........................................................................8
.I.1.1. Giới thiệu.............................................................................................................8
.I.1.2. Bộ thu thập tài liệu-Crawler.............................................................................10
.I.1.3. Bộ lập chỉ mục-Indexer.....................................................................................15
.I.1.4. Ứng dụng tìm kiếm-Searcher............................................................................17
.I.2. Lucene-Mã nguồn mở cho máy tìm kiếm............................................................18

.I.2.1. Giới thiệu chung................................................................................................18
Các bước thực hiện.....................................................................................................20
Các lớp chính .............................................................................................................21
.II VẤN ĐỀ CẦN NGHIÊN CỨU ..................................................................................23
.II.1. HyperText Transfer Protocol...............................................................................23
.II.1.1. Định dạng địa chỉ (Internet addressing).........................................................23
.II.2. Lập trình đa luồng trong java..............................................................................27
.II.2.1. Thread là gì?....................................................................................................27
.II.2.2. Thread trong ngôn ngữ Java...........................................................................27
.II.3. Phân tích HTML..................................................................................................29
.II.3.1. Bốn thành phần cơ bản của Html....................................................................29
.II.3.2. Thành phần mà crawler phân tích..................................................................31
.II.3.3. Vấn đề cần xử lý...............................................................................................33
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG...................................................36
.I PHÂN TÍCH HỆ THỐNG ...........................................................................................36
.I.1. Gói crawler............................................................................................................37
.I.1.1. Use-case quản lý các liên kết............................................................................38
.I.1.2. Usecase quản lý thiết lập các tùy chọn............................................................45
.I.2. Gói reader..............................................................................................................46
.I.3. Gói indexer............................................................................................................47
.I.4. Gói searcher và ứng dụng web.............................................................................48
.II THIẾT KẾ HỆ THỐNG..............................................................................................49
.II.1. Tổng thể chương trình.........................................................................................49
.II.1.1. Gói crawler......................................................................................................51
.II.1.2. Gói reader........................................................................................................52
.II.1.3. Gói indexer.......................................................................................................54
.II.2. Xây dựng các chức năng......................................................................................54
.II.2.1. Chức năng xác nhận cho phép đánh chỉ mục.................................................54
.II.2.2. Chức năng tải tài liệu về máy........................................................................56
.II.2.3. Tạo công việc mới............................................................................................57

.II.2.4. Lưu công việc dở dang.....................................................................................58
.II.2.5. Thực hiện các công việc cũ..............................................................................58
.II.2.6. Chức năng truy xuất liên kết............................................................................58
.II.3. Tổ chức dữ liệu....................................................................................................61
.II.3.1. Lớp URLRootBean...........................................................................................61
.II.3.2. Lớp LinkBean...................................................................................................62
.II.3.3. Lớp ParentDirBean..........................................................................................63
CÀI ĐẶT VÀ TRIỂN KHAI CHƯƠNG TRÌNH.........................................65
.I CÀI ĐẶT CHƯƠNG TRÌNH.......................................................................................65
.II KẾT QUẢ THỰC HIỆN..............................................................................................67
.II.1. Màn hình chính của chương trình.......................................................................67
.II.2. Màn hình hệ thống crawler đang vận hành.........................................................67
.II.3. Màn hình xử lý các công việc cũ.........................................................................68
KẾT QUẢ THỬ NGHIỆM............................................................................70
.I DỮ LIỆU THỬ NGHIỆM............................................................................................70
.II KẾT QUẢ THỬ NGHIỆM..........................................................................................70
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN.....................................................73
.I KẾT QUẢ ĐẠT ĐƯỢC................................................................................................73
.I.1. Về mặt lý thuyết....................................................................................................73
.I.2. Về mặt thực nghiệm..............................................................................................73
.I.2.1. Ưu điểm..............................................................................................................73
.I.2.2. Khuyết điểm.......................................................................................................73
.II HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI.......................................................................73
PHỤ LỤC........................................................................................................75
[1] Otis Gospodnetic, Erik Hatcher, Doug Cutting Luence in action ISBN 1-932394-28-1
..............................................................................................................................................76
[2] Jeff Heaton , Programming Spiders, Bots, and Aggregators in Java........................76
[3] Trang web : ........................................................................76
[4] Trang web : ........................................................................76
[5] Trang web: ..........................................................................76

[6] Trang web: ..........................................................................76
[7] Trang web: />[8] Trang web: />[9] Trang web: />TÓM TẮT ĐỀ TÀI.........................................................................................77
MỤC LỤC HÌNH ẢNH
HÌNH 1 GIAO DIỆN CỦA GOOGLE SEARCH ENGINE...........................2
HÌNH 2 GIAO DIỆN CỦA XALO.VN SEARCH ENGINE..........................3
HÌNH 3 SƠ ĐỒ USECASE BAN ĐẦU CỦA HỆ THỐNG............................6
HÌNH 4 TỔNG QUAN HỆ THỐNG TÌM KIẾM..........................................8
HÌNH 5 BIỂU ĐỒ TRẠNG THÁI CỦA MỘT LIÊN KẾT.........................13
HÌNH 6 QUÁ TRÌNH ĐÁNH CHỈ MỤC.....................................................16
HÌNH 7 CÁC BƯỚC PHÂN TÍCH TÀI LIỆU.............................................16
HÌNH 8 VÒNG ĐỜI CỦA MỘT THREAD..................................................28
HÌNH 9 BẢNG TRONG HTML....................................................................33
HÌNH 10 SƠ ĐỒ THÀNH PHẦN TỔNG QUAN CỦA HỆ THỐNG.........36
HÌNH 11 CẤU TRÚC CỦA CRAWLER......................................................38
HÌNH 12 SƠ ĐỒ USE-CASE CỦA GÓI CRAWLER..................................38
HÌNH 13 SƠ ĐỒ USECASE CỦA VIỆC QUẢN LÝ CÁC LIÊN KẾT GỐC39
HÌNH 14 SƠ ĐỒ TRẠNG THÁI THÊM MỚI CÁC LIÊN KẾT GỐC......40
HÌNH 15 SƠ ĐỒ TRẠNG THÁI CỦA TÁC VỤ CHỈNH SỬA MỘT LIÊN
KẾT GỐC.......................................................................................................41
HÌNH 16 SƠ ĐỒ TRẠNG THÁI XÓA LIÊN KẾT GỐC............................42
HÌNH 17 SƠ ĐỒ USECASE CHO TÁC VỤ QUẢN LÝ CÁC LIÊN KẾT ĐÃ
TẢI VỀ MÁY..................................................................................................43
HÌNH 18 SƠ ĐỒ USECASE QUẢN LÝ DANH SÁCH CÁC THƯ MỤC
CHỨA TÀI LIỆU...........................................................................................45
HÌNH 19 SƠ ĐỒ TỔNG THỂ CÁC THÀNH PHẦN CỦA GÓI READER47
HÌNH 20 SƠ ĐỒ HOẠT ĐỘNG CỦA GÓI INDEXER...............................48
HÌNH 21 SƠ ĐỒ HOẠT ĐỘNG CỦA GÓI SEARCHER VÀ ỨNG DỤNG
WEB................................................................................................................49
HÌNH 22 SƠ ĐÔ TUẦN TỰ CỦA HỆ THỐNG...........................................50
HÌNH 23 SƠ ĐỒ MÔ TẢ HOẠT ĐỘNG CRAWLER................................52

HÌNH 24 TRẠNG THÁI HOẠT ĐỘNG CỦA GÓI READER....................53
HÌNH 25 SƠ ĐỒ TUẦN TỰ CỦA GÓI INDEXER......................................54
HÌNH 26 SƠ ĐỒ HOẠT ĐỘNG CỦA CHỨC NĂNG ĐỌC FILE
ROBOT.TXT...................................................................................................55
HÌNH 27 SƠ ĐỒ HOẠT ĐỘNG CỦA CHỨC NĂNG TẢI TÀI LIỆU VỀ
MÁY................................................................................................................56
HÌNH 28 SƠ ĐỒ HOẠT ĐỘNG CỦA CHỨC NĂNG TẠO CÔNG VIỆC
MỚI.................................................................................................................58
HÌNH 29 SƠ ĐỒ HOẠT ĐỘNG TRUY XUẤT CÁC LIÊN KẾT...............60
HÌNH 30 MÀN HÌNH CRAWLER ĐANG HOẠT ĐỘNG TẢI CÁC DỮ
LIỆU VỀ MÁY...............................................................................................67
HÌNH 31 MÀN HÌNH KHI HỆ THỐNG THỰC HIỆN CÁC CÔNG VIỆC
CŨ...................................................................................................................69
HÌNH 32 DANH SÁCH CÁC DỮ LIỆU DO CRAWLER TẢI VỀ.............70
HÌNH 33 KẾT QUẢ TRẢ VỀ VỚI CÂU TRUY VẤN “JAVA TUTORIAL”
.........................................................................................................................71
HÌNH 34 TRANG WEB NGUỒN CỦA KẾT QUẢ ĐẦU TIÊN.................72
MỤC LỤC CÁC BẢNG
BẢNG 1 BẢNG XẾP HẠNG SEARCH ENGINE NĂM 2009.......................2
BẢNG 2 CÁC GÓI CHÍNH TRONG THƯ VIỆN MÃ NGUỒN MỞ
LUCENE.........................................................................................................20
BẢNG 3 CÁC GIAO THỨC THƯỜNG GẶP..............................................23
BẢNG 4 CÁC THÀNH PHẦN CỦA MỘT URL.........................................24
BẢNG 5 DANH MỤC CÁC BẢNG TRONG CƠ SỞ DỮ LIỆU.................61
BẢNG 6 BẢNG CHỨA THÔNG TIN ĐỊA CHỈ GỐC................................62
BẢNG 7 BẢNG LƯU THÔNG TIN CÁC ĐỊA CHỈ ĐƯỢC TẢI VỀ.........63
BẢNG 8 BẢNG LƯU TRỮ THÔNG TIN CỦA CÁC THƯ MỤC CHỨA TÀI
LIỆU TẢI VỀ.................................................................................................64
BẢNG 9 BẢNG MÔ TẢ CÁC LỚP CHÍNH CỦA CHƯƠNG TRÌNH .....65
Chương 1

Chương 1
TỔNG QUAN ĐỀ TÀI
.I GIỚI THIỆU CHUNG VỀ VẤN ĐỀ NGHIÊN CỨU
Hiện nay Internet là nguồn tài nguyên vô tận của nhân loại chỉ cần vài lần nhấp chuột ta
có thể tiếp cận được những nguồn tài liệu mong muốn. Để tiếp cận được tài liệu thích hợp
ta nhờ vào các máy tìm kiếm (search engine) vì vậy máy tìm kiếm chiếm lĩnh một vị trí vô
cùng quan trọng trong thời đại thông tin. Các máy tìm kiếm thông dụng ngày nay đầu tiên
phải nói đến Google, Yahoo, MSN-Live. Để xây dựng được một hệ thống như vậy vô cùng
phức tạp và nó là đề tài luôn được nghiên cứu để tìm giải pháp tối ưu nhất.
.I.1. Lịch sử phát triển
• Năm 1990 công cụ tìm kiếm đầu tiên được ra đời là Archie-phát triển bởi Alan
Emtage sinh viên đại học McGill, Montreal. Archie cũng bao gồm các thành phần
như các máy tìm kiếm ngày nay, đó là dò tìm tài liệu, thiết lập chỉ mục, xây dựng
giao diện tìm kiếm. Archie chỉ đánh chỉ mục với tên file bằng cách download về tất
cả các thư mục liệt kê danh sách các file nằm trên FTP site.
• Năm 1991 máy tìm kiếm Gopher được đưa ra bởi Mark McCahill tại đại học
Minnesota. Máy tìm kiếm Gopher có thể đánh chỉ mục tên toàn văn bản text đơn
giản.
• Năm 1993 World Wide Web Wanderer xuất hiện, được biết đến như là robot đầu
tiên. Nhiệm vụ của nó là đếm để ước lượng số lượng các web
• Năm 1994 WebCrawler được giới thiệu. Đây là máy tìm kiếm full-text đầu tiên tức
là tìm kiếm trên toàn bộ phần văn bản.
• Năm 1995 máy tìm kiếm Alta Vista ra đời, công cụ đầu tiên cho phép sử dụng các
câu truy vấn là ngôn ngữ tự nhiên. Mặc dù thất bại sau này nhưng Alta vista vẫn
thực sự ấn tượng có thể nói Alta vista là một Google thời bấy giờ
• Năm 1996 công ty Inktomi được khởi đầu tại UC Berkeley và vào tháng 6 năm
1999, công ty Inktomi giới thiệu một thư mục tìm kiếm dựa trên công nghệ
"concept induction". Theo như giới thiệu của công ty này thì "concept induction"
có khả năng tiến hành phân tích thói quen của người sử dụng để đưa ra các trang
gợi ý.

• Năm 1997 Google ra mắt như một dự án nghiên cứu tại trường Đại học Stanford
bởi hai nhà sáng lập Sergey Brin và Larry Page. Dường như Google là máy tìm
kiếm thống lĩnh ngày nay.
• Năm 1998 MSN Search và Open Directory ra đời.
Phan Tấn Luận, Lớp 04T1
1
Tổng quan đề tài
.I.2. Giới thiệu về các máy tìm kiếm thông dụng
Bảng 1 Bảng xếp hạng search engine năm 2009
.I.2.1. Thế giới
google.com
Hình 1 Giao diện của google search engine
Google được xem như là máy tìm kiếm thống trị thế giới hiện nay.
Phan Tấn Luận, Lớp: 04T1 2
Tổng quan đề tài
.I.2.2. Việt Nam
xalo.vn
Hình 2 Giao diện của xalo.vn search engine
Xalo.vn là một Máy tìm kiếm (search engine) được Tinhvân Media phát triển với tham
vọng Xalo.vn sẽ trở thành công cụ tìm kiếm tiếng Việt hàng đầu của Việt Nam.
Xalo.vn hiện tại đang cung cấp 7 dịch vụ tìm kiếm bao gồm:
- Tìm kiếm Web: dịch vụ tìm kiếm thông tin tổng hợp trên dữ liệu gần 100 triệu trang
văn bản tiếng Việt hiện có trên các Website của Việt Nam
- Tìm kiếm Tin tức: dịch vụ tổng hợp tin tức và tìm kiếm thông tin trên dữ liệu dạng tin
tức được tổng hợp từ gần 70 trang tin điện tử hàng đầu của Việt Nam
- Tìm kiếm Diễn đàn: dịch vụ tìm kiếm cho phép người dùng tìm kiếm thông tin từ hơn
100 diễn đàn lớn nhất của Việt Nam hiện tại.
- Tìm kiếm Ảnh: dịch vụ tìm kiếm hình ảnh trên số lượng hơn 20 triệu hình ảnh được
người dùng Việt Nam đưa lên Internet.
Phan Tấn Luận, Lớp: 04T1 3

Tổng quan đề tài
- Tìm kiếm Blog: dịch vụ tìm kiếm cho phép người dùng tìm kiếm thông tin trên hầu
hết các mạng xã hội được cung cấp bởi Việt Nam cũng như trên thế giới mà người Việt
Nam hay sử dụng
- Tìm kiếm Nhạc: dịch vụ tìm kiếm dữ liệu Nhạc từ các Website nghe nhạc trực tuyến
lớn nhất Việt Nam hiện tại.
- Tìm kiếm Rao vặt: dịch vụ tổng hợp và tìm kiếm thông tin rao vặt từ hơn 20 Website
mua bán rao vặt lớn nhất Việt Nam
Với các dịch vụ cung cấp và tính năng khác biệt cho từng dịch vụ, Xa Lộ đang không
ngừng được hoàn thiện để có thể phục vụ tốt nhất nhu cầu tìm kiếm của người dùng
Internet Việt Nam và trở thành máy tìm kiếm tiếng Việt hàng đầu của Việt Nam.
.II LÝ DO CHỌN ĐỀ TÀI
.II.1. Mục tiêu và ý nghĩa của đề tài
Xử lý ngôn ngữ tự nhiên là một nhánh của lĩnh vực trí tuệ nhân tạo và có thể nói đây là
phần khó nhất trong lĩnh vực trí tuệ nhân tạo vì nó liên quan đến việc phải hiểu ngôn ngữ-
công cụ hoàn hảo của tư duy và giao tiếp. Các bài toán và ứng dụng của nhánh xử lý ngôn
ngữ bao gồm:
• Nhận dạng chữ viết
• Nhận dạng tiếng nói
• Tổng hợp tiếng nói
• Dịch tự động
• Tìm kiếm thông tin
• Tóm tắt văn bản
• Khai phá dữ liệu
Đây là các bài toán được rất nhiều chuyên gia quan tâm phát triển, vì tính ứng dụng của
nó rất thiết thực trong đời sống xã hội. Ngay từ khi còn ngồi trên ghế nhà trường em mong
một ngày nào đó sẽ được làm việc trong nhánh xử lý ngôn ngữ. Với mong ước đó trong
thời gian qua em đã định hướng sẽ thực công việc có liên quan đến một phần nhỏ của lĩnh
vực đó là nghiên cứu tìm hiểu phần tìm kiếm thông tin, tìm hiểu những công nghệ mới để
có thể xây dựng được một máy tìm kiếm toàn văn.

Trong thời đại công nghệ số như hiện nay, các nguồn tài liệu là vô cùng phong phú đa
dạng. Mỗi giây sẽ có rất nhiều, rất nhiều thông tin được đưa lên làm giàu cho nguồn tài
nguyên vô tận này. Nguồn tài nguyên càng nhiều thì dĩ nhiên là không thể thiếu công cụ
tìm kiếm và công việc tìm kiếm càng khó hơn đòi hỏi các máy tìm kiếm phải phát triển
không ngừng. Vì lý do đó mà có rất nhiều máy tìm kiếm ra đời, phục vụ cho nhu cầu thiết
thực này. Làm thế nào mà chỉ trong tích tắc các máy tìm kiếm có thể đưa về hàng nghìn
kết quả tương ứng với truy vấn của người dùng. Các máy tìm kiếm dùng các công nghệ
Phan Tấn Luận, Lớp: 04T1 4
Tổng quan đề tài
nào, thuật toán nào mà có thể thực hiện được như vậy? Đó là câu hỏi mà em luôn tự hỏi và
muốn nghiên cứu tìm hiểu.
Quay về một phạm vi nhỏ hơn. Chẳng hạn như ta có một website chứa rất nhiều tài liệu
và muốn hỗ trợ công cụ tìm kiếm cho người dùng. Thông thường thì ta sử dụng tìm kiếm
toàn văn (full-text) mà các hệ quản trị cơ sở dữ liệu cung cấp. Sẽ có rất nhiều hạn chế như
chỉ tìm được trên dữ liệu ở bên trong hệ quản trị cơ sở dữ liệu, hạn chế về câu truy vấn vì
phụ thuộc vào cú pháp của mỗi cơ sở dữ liệu, không tìm được trên các dữ liệu phi cấu
trúc, tốc độ xử lý trên một cơ sở dữ liệu lớn sẽ rất chậm v.v…Với các lý do đó ta cần xây
dựng một hệ thống tìm kiếm cho website của mình tương tự như các máy tìm kiếm.
Bởi vì mục đích và ý nghĩa như trên em chọn cho mình đề tài:”Nghiên cứu tìm hiểu
máy tìm kiếm và xây dựng chương trình mô phỏng một máy tìm kiếm”.
.II.2. Nhiệm vụ cần phải thực hiện
.II.2.1. Xây dựng chức năng
.1 Tự động thu thập tài liệu
• Từ một hay nhiều địa chỉ liên kết ban đầu, chương trình tự động theo tất cả các
liên kết có trong liên kết ban đầu để truy xuất tài liệu. Một liên kết được tìm
thấy sẽ đóng vai trò như một liên kết ban đầu mới. Công việc cứ diễn ra khi ta
tìm hết tất cả các liên kết. Có hai tùy chọn: một chỉ tìm các liên kết cùng tên
miền, hoặc cho phép theo những liên kết khác tên miền.
• Các tài liệu tìm thấy thường ở các dạng chính .html, .pdf, .doc sẽ được tải về lưu
trữ trên máy.

.2 Xây dựng chức năng xử lý tài liệu thành các văn bản thuần túy (plaintext)
• Từ kho tài liệu đã tìm được, hệ thống sẽ xử lý đưa về định dạng đơn giản nhất là
văn bản thuần túy. Để phục vụ cho các bước phân tích sau.
.3 Lập chỉ mục cho các tài liệu đã tìm được
• Từ các văn bản thuần túy đã truy xuất ra được ta sẽ thực hiện các bước như đưa
tất cả về chữ thường, phân tích văn bản thành từng đơn vị từ vựng, loại bỏ các
stopwords, thực hiện đưa văn bản về thành từ gốc (stemming, chỉ thực hiện
phần này trong Tiếng Anh), tính trọng số của từ, loại bỏ những từ có trọng số
thấp.
• Tiến hành lập các tập tin chỉ mục đảo cho các thông tin vừa tìm được
.4 Tìm kiếm tài liệu
• Từ các chỉ mục đảo ta có thể xây dựng ứng dụng tìm kiếm cho tài liệu ta thu
thập được ở dạng tìm kiếm toàn văn.
• Hệ thống nhận truy vấn từ người dùng, truy vấn sẽ được phân tích qua các bước
như: đưa về chữ thường loại bỏ, stopword. Sau đó tiến hành tìm kiếm, trả về kết
quả được sắp xếp theo độ tương đồng với câu truy vấn giảm dần.
Phan Tấn Luận, Lớp: 04T1 5
Tổng quan đề tài
Từ nhiệm vụ như trên ta có sơ đồ usecase tổng quát
Hình 3 Sơ đồ usecase ban đầu của hệ thống
Đây chỉ là sơ đồ hình dung ban đầu, vì thế có thể được thay đổi trong các bước phân
tích sau.
.II.2.2. Xây dựng ứng dụng web
Xây dựng giao diện giao tiếp giữa hệ thống và người sử dụng. Người sử dụng ở đây
gồm người quản trị hệ thống, và người tìm kiếm. Người quản trị hệ thống sẽ có các chức
năng vận hành hệ thống còn người dùng thì sẽ nhập câu truy vấn và nhận kết quả trả về.
.II.3. Hướng nghiên cứu của đề tài
.II.3.1. Về mặt lý thuyết
Nắm được các lý thuyết liên quan đến lĩnh vực tìm kiếm thông tin.
.II.3.2. Công cụ xây dựng đề tài

• Về mặt cơ sở lý thuyết: các nguồn tài liệu tham khảo trên các trang web, sách ngôn
ngữ lập trình, các giáo trình và kết thức trau dồi trong thời gian học tại trường…
• Công cụ thiết kế phần mềm: Eclipse version 3.3, Mysql, Poseidon for UML PE 6.0.2,
ArgoUML
• Công cụ quản lý đề tài, mã nguồn: Maven2, Lucene, TortoiseSVN
• Công cụ Test: JUnit
Phan Tấn Luận, Lớp: 04T1 6
Tổng quan đề tài
.II.3.3. Dự kiến kết quả đạt được
Xây dựng mô phỏng được một hệ thống máy tìm kiếm:
• Tải được nội dung các trang html. Từ một trang web gốc hệ thống sẽ tự tìm ra
tất cả các siêu liên kết tới các trang web đó, download các loại định dạng
(contentType) cơ bản như: text/html, application/pdf, application/doc… về máy.
Các file sẽ được lưu trữ theo từng thư mục được đặt tên theo tên host của liên
kết. Địa chỉ các trang web sẽ được mã hóa để có thể đặt tên cho nó ở trên đĩa.
• Xây dựng hệ thống đọc file dựa theo phần đuôi mở rộng. Tùy vào các định dạng
file sẽ có các lớp đọc thích hợp. Chủ yếu đọc các file thông dụng như: html,
htm, pdf, doc, rtf, xml, txt…còn các file dạng khác sẽ chỉ đánh chỉ mục theo tên
của file và địa chỉ của nó.
• Phân tích các tài liệu đã thu thập được bóc tách phần văn bản thuần túy
(plaintext).
• Sử dụng thư viện mã nguồn mở Lucene để đánh chỉ mục cho các tài liệu.
• Phân tích chuỗi tìm kiếm của người dùng.
• Tìm kiếm được trên các trang html và trong toàn nội dung tập tin. Trả về kết
quả thích hợp
Phan Tấn Luận, Lớp: 04T1 7
Chương 2
Chương 2
CƠ SỞ LÝ THUYẾT
.I LÝ THUYẾT LIÊN QUAN ĐẾN ĐỀ TÀI

.I.1. Tổng quan hệ thống máy tìm kiếm
Hình 4 Tổng quan hệ thống tìm kiếm
.I.1.1. Giới thiệu
Thuật ngữ search engine thường được dùng để mô tả cho cả crawler-based search
engine và human-powered directory. Đây là hai loại máy tìm kiếm mà chúng thu thập chỉ
mục theo các cách khác nhau.
Crawler-based search engines
Crawler-based search engines chẳng hạn như Google, tạo chỉ mục một cách tự động.
Họ “crawl” và “spider” các trang web và sau đó chúng ta tìm trên hệ thống chỉ mục họ thu
Phan Tấn Luận, Lớp 04T1
8
Cơ sở lý thuyết
thập được. Khi ta thay đổi nội dung của trang web thì crawler-base search engine sẽ có thể
tìm ra các thay đổi và điều đó sẽ ảnh hưởng đến trang web sẽ được xếp hạng như thế nào.
Human-powered directory
Human-powered directory chẳng hạn như Open Directory phụ thuộc vào nhân tố con
người trong khi lập chỉ mục. Ta sẽ gửi một bản mô tả ngắn về trang web của ta đến
human-powered directory, hoặc các nhà biên soạn cho các máy tìm kiếm này sẽ ghi lại
một bản mô tả nội dung trang web mà họ đã xem qua. Kết quả phù hợp khi ta tìm kiếm sẽ
phụ thuộc vào các bản mô tả này. Lập chỉ mục theo dạng này thì khi ta thay đổi nội dung
của trang web thì sẽ chẳng ảnh hưởng gì đến chỉ mục đã được thực hiện. Ngoại trừ những
trang web hay, trang web có nội dung bổ ích và phổ biến thì có khả năng được mô tả lại
thường xuyên.
Ngày nay các máy tìm kiếm không còn phân biệt rõ ràng là crawler-based search
engine hay human-powerd directory. Bởi vì kết quả tìm kiếm trả về dựa trên cả hai dữ
liệu. Chẳng hạn MSN Search trước kia là human-powered directory tuy nhiên ngày nay nó
vẫn hiển thị các kết quả theo crawler-based search engine (được cung cấp bởi công ty
Inktomi) cho các truy vấn phức tạp hơn.
Crawler-based search engine thường bao hàm 3 thành phần chính. Đầu tiên là spider
hay đôi khi còn gọi là crawler, wanderer…Crawler sẽ truy cập vào một trang web, đọc nội

dung, và sau đó theo các liên kết có đi tới các trang khác bên trong site. Spider sẽ trở lại
các website này theo một nguyên tắc đặt ra trước, có thể là mỗi tháng hay hai tháng để tìm
kiếm các thay đổi.
Những gì mà crawler thu thập được sẽ được đưa vào phần thứ hai của máy tìm kiếm để
lập thành chỉ mục. Chỉ mục (index hay đôi khi còn được gọi là catalog, giống như là một
quyển sách khổng lồ chứa tất cả những bản copy của mỗi trang web mà spider tìm thấy.
Nếu một trang web thay đổi, thì quyển sách này sẽ được cập nhật các nội dung mới.
Thường thì sẽ mất một khoảng thời gian các trang web mới, hay các thay đổi mà spider
tìm thấy được thêm vào chỉ mục. Vì vậy, một trang web có thể đã được “spider” nhưng
chưa được đánh chỉ mục. Khi chưa được đánh chỉ mục thì dĩ nhiên nó sẽ không tồn tại
trên các kết quả tìm kiếm.
Ứng dụng web là thành phần thứ ba trong máy tìm kiếm. Nó là chương trình mà sẽ
duyệt qua hàng tỉ trang web được ghi lại trong bảng chỉ mục để tìm kiếm kết quả phù hợp
cho một truy vấn và sắp xếp các kết quả theo một trật tự được cho là tương thích nhất.
Search engine tìm kiếm trên hàng hàng tỉ trang web và trả về các kết quả phù hợp với
người dùng mong muốn. Dĩ nhiên không phải lúc nào kết quả trả về cũng đúng đắn.
Search engine không có khả năng hỏi vài câu hỏi để tập trung vào chủ đề tìm kiếm hay
cũng chẳng thể nào dựa vào đánh giá cũng như kinh nghiệm cho các lần tìm kiếm trước
như cách của con người. Search engine dựa tất cả vào thuật toán khi nó phải đối diện với
hàng tỉ trang web cần phải sắp xếp. Hầu như các thuật toán cụ thể của các máy tìm kiếm
làm việc như thế nào đều được giữ kín không tiếc lộ. Tuy nhiên các search engine đều
tuân theo các các quy tắc chung. Các quy tắc này sẽ được trình bày ở phần sau.
Phan Tấn Luận, Lớp: 04T1 9
Cơ sở lý thuyết
.I.1.2. Bộ thu thập tài liệu-Crawler
.1 Đặc điểm hoạt động của Crawler
Từ một hay nhiều các liên kết ban đầu, Crawler lên đường thực hiện công việc “lùng
sục” Internet của mình. Crawler tải về nội dung các trang web từ các liên kết đã nhận ban
đầu và truy xuất các liên kết mới nằm trong nội dung của các trang này. Các liên kết mới
này sẽ được nạp vào một trình điều khiển (Crawler Manager). Crawler Manager sẽ quyết

định các liên kết nào sẽ được viếng thăm kế tiếp, Crawler Manager sẽ nạp chúng vào hàng
đợi để chờ xử lý. Các liên kết này sẽ được quản lý trong cơ sở dữ liệu để thuận tiện cho
công việc cập nhật thông tin mới. Trong một lần thực hiện thì các liên kết phải chỉ được
truy cập một lần để tăng khả năng hoạt động và tránh trùng lặp nội dung. Một crawler đi
qua bốn bước cơ bản:
• Bắt đầu từ một hay nhiều liên kết
• Tải nội dung
• Phân tích nội dung, tìm liên kết, đi theo các liên kết
• Theo dõi liên kết, tránh trùng lặp
Có nhiều chế độ làm việc cho crawler thực hiện nhiệm vụ truy tìm thông tin. Các chế
độ được phân biệt theo nhiều cách. Các đặc điểm phân biệt có thể là:
• Batch Mode
• Incremental Mode
Batch mode Crawler sẽ đánh chỉ mục liên tục các trang web và không tải nội dung về
để lưu trữ. Cách này nội dung luôn được cập nhật nhưng chỉ phù hợp cho lượng trang web
nhỏ có giới hạn. Chẳng hạn như mục tiêu của crawler được định ra là thực hiện trên một
số website cụ thể nào đấy. Crawler chỉ có nhiệm vụ liên tục chạy qua các wesiste này để
cập nhật các nội dung mới.
Incremental Mode hoạt động ở chế độ này crawler sẽ không bao giờ xóa các nội dung
lưu trữ. Khi gặp một tài liệu được cho là đã viếng thăm thì crawler sẽ tuân theo chiến lược
cập nhật nội dung đã được cài đặt. Ở chế độ này thì crawler cần phải có kho lưu trữ tài liệu
thật lớn.
• Breadth-first(Tìm kiếm theo chiều rộng)
• Depth-first(Tìm kiếm theo chiều sâu)
Tìm kiếm theo chiều rộng Tìm tất cả các liên kết ở cùng cấp trước khi đi sâu hơn tìm
tất cả các liên kết ở cấp tiếp theo. Cấu trúc dữ liệu cho thuật toán này là hàng đợi vào sau
ra trước.
Tìm kiếm theo chiều sâu Tìm tất cả các liên kết trong một nhánh trước khi tìm các
liên kết ở nhánh tiếp theo.
• Randomized

Phan Tấn Luận, Lớp: 04T1 10
Cơ sở lý thuyết
• PageRank
Randomized Tìm kiếm một cách ngẫu nhiên
PageRank Tìm các trang quan trọng trước. Các trang quan trọng là các trang được dẫn
tới từ nhiều trang khác.
.2 Tính năng bắt buộc crawler phải tuân theo
• Robustness: Các crawler phải được thiết kế chính xác và hoạt động ổn định.
Nhiều website có tạo ra chức năng đánh lừa các crawler. Tức là dẫn các crawler
vào các vòng lặp không có kết thúc. Crawler cần phải được thiết kế sao cho có
thể nhận ra “bẫy” và quay trở ra. Không phải “cái bẫy” nào cũng tạo ra nhằm
đánh lừa các crawler mà đôi khi là vô tình bởi trang web thiết kế bị lỗi.
• Politeness: Các website sẽ có các chính sách cho phép các crawler truy cập vào
trang web mình theo một cấp độ nào đó. Crawler cần phải tuân thủ các chính
sách này.
.3 Tính năng crawler nên tuân theo
• Distributed: Các crawler cần được thiết kế theo mô hình phân tán để có thể
thực thi trên nhiều máy tính.
• Scalable: Crawler cần được thiết kế có khả năng tăng tần xuất hoạt động bằng
nhiều cách. Chẳng hạn như thêm nhiều máy tính hoặc tăng dung lượng băng
thông.
• Performance and efficiency: Crawler cần được thiết kế hiệu thật hiệu quả
trong việc sử dụng các tài nguyên hệ thống như bộ xử lý, dung lượng lưu trữ và
băng thông mạng.
• Freshness: Crawler cần phải được cập nhật nội dung mới một cách liên tục.
Crawler cần phải có tần xuất truy cập trang web xấp xĩ với tần xuất thay đổi nội
dung của trang web.
• Extensible: Crawler cần được thiết kế sao cho dễ dàng mở rộng theo nhiều
hướng. Chẳng hạn như tăng định dạng cho nội dung truy cập hay thêm giao thức
truy cập Internet. Để được như vậy crawler cần được chia thành các phần nhỏ

(các mudole) để tiện cho việc duy trì và nâng cấp.
.4 Vấn đề cơ bản cần giải quyết của Crawler
• Những trang web nào nên được tải về? Tải về tất cả các trang web đó là một
việc làm không tưởng vì vậy cần phải có chiến lược lựa chọn các trang web
quan trọng để tải về. Các trang web được nhiều truy cập, các trang web cung
cấp nội dung có giá trị và phổ biến thì nên được vị trí ưu tiên trong hàng đợi.
• Làm thế nào để cập nhật nội dung? Trên Internet các trang web cập nhật
thường xuyên nội dung của nó. Có trang cập nhật liên tục có trang cập nhật
trong thời gian lâu hơn. Làm thế nào để quyết định các trang web nào nên được
truy cập lại và những trang web nào cần bỏ qua. Cũng như công việc trên ta
Phan Tấn Luận, Lớp: 04T1 11
Cơ sở lý thuyết
không thể cập nhật lại toàn bộ các trang web một cách thường xuyên. Cần phải
có chiến lược lựa chọn.
• Làm thế nào để tải nội dung trang web tối ưu nhất. Trong khi crawler thực
hiện công việc thu thập tài liệu sẽ tiêu tốn tài nguyên như CPU hay tài nguyên
mạng. Nếu crawler chiếm quá nhiều tài nguyên mạng thì nó có thể bị người
quản trị các website loại trừ. Cần phải có chiến lược để nâng cao khả năng hoạt
động sao cho ít tốn tài nguyên nhất.
• Làm thế nào để xử lý song song. Tài liệu trên Internet là vô cùng lớn cần phải
có nhiều crawler hoạt động đồng thời. Làm thế nào để các crawler khác nhau sẽ
không truy cập cùng một website ở các thời điểm khác nhau.
• Khả năng lưu trữ Yêu cầu tổng quan của một công cụ tìm kiếm và sao chép
nội dung web bao hàm tính năng tải file, giao diện trực quan dễ mở rộng, bảo
mật giữa server và trình duyệt web, trình diễn các thành phần động, và phản ảnh
giao diện web một cách chính xác. Mục đích trong việc sao chép một trang web
là phải phản ảnh lại chính xác giao diện của trang web, tải từng hình ảnh, liên
kết cũng như thành phần động. Đây là một nhiệm vụ khó hầu hết bởi vì khả
năng phân tích mã JavaScript của crawler còn thấp. Phạm vi hoạt động của
crawler phụ thuộc vào cách trình bày của các trang web nguồn. Ví dụ cần phải

có thuật toán để crawler truy lục hết các tài liệu trên cùng một website trước khi
đi theo các liên kết đi ra các website khác. Hình ảnh nằm ở các website bên
ngoài được tham chiếu tới bởi website này thì lại khác, tất cả các hình ảnh phải
được lưu trữ để phục vụ cho việc lưu các trang web trong cache. HTTP header
chuyển hướng (HTTP header redirect) nằm ở vị trí Location của HTTP header
phải được lần theo. Các liên kết nằm hai server nhưng trên cùng một miền thì
cần phải theo. Ví dụ như mail.yahoo.com và quote.yahoo.com. Nhiều liên kết và
các dòng chuyển hướng thường được viết dưới mã JavaScript, các liên kết này
cần phải lần theo. Cũng cần phải định nghĩa trước giới hạn độ sâu của liên kết.
.5 Xây dựng Crawler
Có hai cấu trúc mà crawler có thể được xây dựng. Thứ nhất là xây dựng crawler như là
một chương trình đệ quy. Thứ hai là xây dựng crawler theo cấu trúc dữ liệu sử dụng hàng
đợi.
Chương trình đệ quy là một kỹ thuật lập trình mà các phương thức tự gọi lại chính nó.
Chương trình đệ quy phù hợp cho các dự án mà các công việc được thực thi lặp lại một
cách hệ thống và thông tin mà công việc trong tương lai cũng được biết trước sẽ giống như
công việc đang được thực hiện hiện tại. Chương trình đệ quy chỉ nên dùng cho crawler mà
biết trước sẽ có số ít các trang web vì mỗi khi chương trình chạy sẽ lưu dữ liệu vào ngăn
xếp với số lượng trang web lớn thì ngăn xếp sẽ rất lớn và có thể gây tràn ngăn xếp nguyên
nhân ngăn chặn không cho chương trình có thể hoạt động. Lý do nữa là ta sẽ không thể
thực hiện khả năng đa luồng cho crawler đệ quy, bởi khi ta đệ quy sẽ tạo ra nhiều tiến
trình. Mỗi tiến trình đóng vai trò là một crawler, mỗi tiến tình lại có một ngăn xếp riêng
mỗi khi chương trình gọi lại chính nó thì sẽ tạo ra một ngăn xếp mới điều này không phù
hợp vì cần phải dùng một chung một ngăn xếp cho một chương trình crawler.
Khi xây dựng crawler sử dụng cấu trúc dữ liệu hàng đợi, đầu tiên crawler sẽ nhận được
liên kết của trang web gốc. Crawler sẽ nạp liên kết này vào hàng đợi. Khi crawler tìm thấy
Phan Tấn Luận, Lớp: 04T1 12
Cơ sở lý thuyết
các liên kết mới thì nó cũng đưa các liên kết này vào hàng đợi. Khi xử lý xong một liên kết
crawler sẽ lấy một liên kết trong hàng đợi ra và tiếp tục truy cập. Công việc sẽ kết thúc khi

không còn một liên kết nào trong hàng đợi.
Như mô tả thì một crawler chỉ cần một hàng đợi là có thể thực thi, Nhưng thông thường
ta dùng bốn hàng đợi để lưu trữ các liên kết để theo dõi các trạng thái của nó.
• Waiting Queue trong hàng đợi này thì các liên kết đang chờ để được xử lý và
liên kết mới sẽ được nạp vào hàng đợi này khi chúng được tìm thấy.
• Running Queue liên kết được chuyển tới hàng đợi này khi crawler bắt đầu xử
lý nó. Một điều quan trọng cần tránh là một liên kết phải chỉ được xử lý một lần
để tránh lãng phí tài nguyên. Khi một liên kết đã được xử lý thì hoặc nó được
chuyển tới Error Queue hoặc Complete Queue.
• Error Queue khi có lỗi xảy ra trong quá trình xử lý liên kết thì liên kết này sẽ
được chuyển tới Error Queue. Một khi đã vào đây thì liên kết sẽ không chuyển
đi đâu nữa và cũng sẽ không được xử lý lần nào nữa.
• Complete Queue khi xử lý thành công thì các liên kết sẽ được chuyển tới đây
và cũng sẽ không chuyển tới đâu nữa.
Một liên kết sẽ chỉ ở một hàng đợi tại một thời điểm. Vì vậy mỗi thời điểm có thể được
coi là mỗi trạng thái của liên kết. Chương trình máy tính thường được mô tả theo biểu đồ
trạng thái trong đó sẽ biểu diễn luồng di chuyển của liên kết từ trạng thái này sang trạng
thái khác.
Hình 5 Biểu đồ trạng thái của một liên kết
.6 Vấn đề cần tránh
• Quá tải mạng và server: Sử dụng robot, một điều tiên quyết phải chú ý đó là tài
nguyên mạng phải lớn. Nhiều robot hoạt động sẽ gây tốn một lượng lớn băng
thông cũng như các tài nguyên mạng khác, tốc độ xử lý, dung lượng bộ nhớ
v.v...
Phan Tấn Luận, Lớp: 04T1 13
Cơ sở lý thuyết
• Cập nhật quá mức: Khó có thể kiểm soát được tốc độ cập nhật mới của trang
web. Cập nhật thông tin là quan trọng. Nhưng phải có chiến lược cập nhật phù
hợp sao cho tốc độ cập nhật xấp xỉ với tốc độ thay đổi nội dung của một trang
web sao cho không quá thường xuyên gây tốn kém tài nguyên, hay quá rời rạc

dữ liệu không được cập nhật cho người dùng.
• Những tình huống không mong đợi khác: Robot không thể nhận ra các url khác
nhau về tên nhưng cùng dẫn về một địa chỉ. Chẳng hạn như DSN và IP. Robot
cũng có thể đi vào những vòng lặp vô hạng khi các trang có sử dụng sessionId.
Mỗi phiên làm việc sẽ tạo ra một Id, id này có thể là tham số của liên kết. Các
liên kết cứ tạo ra liên tục như vậy. Robot theo các liên kết này sẽ không có điểm
dừng. Một tình huống không mong đợi nữa là trong các website có sử dụng lịch
(calendars) thành phần lịch này sử dụng các trang web động cùng với các liên
kết cứ liên tục chỉ đến những ngày, hay năm trong tương lai. Spider đi theo các
liên kết này cũng sẽ không có điểm dừng.
.7 Robot.txt tiêu chuẩn loại trừ crawler
Không phải lúc nào thì crawler cũng được chấp nhận hoạt động trên các website. Bởi vì
nhiều lý do như chiếm giữ băng thông, gửi yêu cầu đến một nội dung nhiều lần liên tục, vì
lý do bảo mật v.v…Vì vậy các nhà quản trị website muốn ngăn chặn các vị khách không
mời này do đó tiêu chuẩn loại trừ crawler ra đời. Có hai cách để loại trừ robot:
• Tạo file robot.txt nằm ngay trong thư mục chính của web site.
• Định nghĩa trong thẻ <META …/>
Robot.txt: file robot.txt bao gồm một hay nhiều dòng có dạng
"<field>:<optionalspace><value><optionalspace>", ngoài ra còn có các chú thích.
Các chú thích là văn bản đi theo sau dấu #. Ví dụ: #Chú thích. Phần chú thích sẽ bị crawler
bỏ qua. Crawler chỉ quan tâm đến các nội dung sau:
User-agent: Giá trị trong trường này chỉ định tên của robot sẽ phải tuân theo chính sách
loại trừ robot của website. Nếu có nhiều trường User-agent có nghĩa là chính sách chỉ định
trên nhiều robot. Ít nhất phải có một trường User-agent trong tập tin robot.txt. Trường
User-agent mà có giá trị là * có nghĩa là tất cả các robot.
Disallow: Giá trị trong trường này chỉ định các URL không được truy cập. Giá trị này
có thể là tên đầy đủ hay chỉ là tên một phần của URL. Tất các các URL bắt đầu với giá trị
trong trường này thì không được viếng thăm. Ví dụ: Disallow: /help có nghĩa là không cho
phép truy cập lẫn /help.html và /help/help/index.html còn Disallow: /help/ thì không cho
phép truy cập /help/help/index.html nhưng cho phép truy cập /help.html. Không có giá trị

nào trong trường Disallow thì có nghĩa tất cả các URL đều được phép truy cập.
Ví dụ:
Một tập tin robot.txt có nội dung như sau sẽ cấm tất cả các robot truy cập vào các URL
bắt đầu bằng /cyberworld/map/, /tmp/ và /foo.html:
# robots.txt for />User-agent: *
Phan Tấn Luận, Lớp: 04T1 14
Cơ sở lý thuyết
Disallow: /cyberworld/map/ # This is an infinite virtual URL space
Disallow: /tmp/ # these will soon disappear
Disallow: /foo.html
Một tập tin có nội dung như sau sẽ cấm tất cả các robot truy cập vào nội dung có URL
bắt đầu bằng /cyberworld/map/ ngoại trừ robot có tên cybermapper:
# robots.txt for />User-agent: *
Disallow: /cyberworld/map/ # This is an infinite virtual URL space
# Cybermapper knows where to go.
User-agent: cybermapper
Disallow:
Một tập tin nội dung như sau sẽ cấp tất cả các robot truy cập vào bất cứ nội dung nào
trong website:
# go away
User-agent: *
Disallow: /
Thẻ <META …/>
Ta có thể định nghĩa thẻ <META…/> để ngăn không cho robot truy cập vào nội dung
của trang web. Thẻ này thường này bên trong thẻ <head></head> của một trang web. Ví
dụ:
<html>
<head>
<title>...</title>
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">

</head>
NOINDEX chỉ định robot không được đánh chỉ mục trang web này.
NOFOLLOW chỉ định robot không được theo các liên kết nằm bên trong trang này.
.I.1.3. Bộ lập chỉ mục-Indexer
Các trang Web sau khi thu thập về sẽ được phân tích, trích chọn những thông tin cần
thiết để lưu trữ trong cơ sở dữ liệu nhằm phục vụ cho nhu cầu tìm kiếm sau này. Ba bước
cơ bản trong quá trình lập chỉ mục:
Phan Tấn Luận, Lớp: 04T1 15

×