KHOA CÔNG NGHỆ THÔNG TIN – TRƯỜNG ĐẠI HỌC HẢI PHÒNG
MỤC LỤC
KHOA CÔNG NGHỆ THÔNG TIN – TRƯỜNG ĐẠI HỌC HẢI PHÒNG
DANH MỤC HÌNH VẼ VÀ BẢNG BIỂU
SỐ
HIỆU
Hìn
h 1.1
Hìn
h 1.2
Hìn
h 1.3
Hìn
h 1.4
Hìn
h 1.5
Hìn
h 2.1
Bả
ng 2.1
Bả
ng 3.1
Bả
ng 3.2
Bả
ng 3.3
Hìn
h 3.1
Hìn
h 3.2
Hìn
h 3.3
Hìn
h 3.4
Hìn
h 3.5
Hìn
h 3.6
Hìn
h 3.7
MÔ TẢ
Giao diện của Archie
Veronica có thể dễ dàng tìm kiếm trong không
gian Gopher
Yahoo Search bao gồm rất nhiều tính năng
Giao diện chính của Google
Sơ đồ hệ thống Search Engine của Netnam
Lưu đồ xử lý cho hệ thống lập chỉ mục
Các từ khóa giúp tối ưu câu truy vấn
Minh họa cho bảng keywords
Minh họa cho bảng users
Minh họa cho bản web
Giao diện chính
Chức năng add url
Giao diện kết quả
Quản lý quảng cáo
Kết quả sau khi add quảng cáo
Chức năng quản lý top từ khóa
Chức năng xóa kết quả
KHOA CÔNG NGHỆ THÔNG TIN – TRƯỜNG ĐẠI HỌC HẢI PHÒNG
Hìn
h 3.8
Hìn
h 3.9
Hìn
h 3.10
Thay đổi tiêu đề
Nhập trang bằng cách thủ công
Chức năng đổi mật khẩu
DANH MỤC CÁC TỪ VIẾT TẮT
TỪ
VIẾT TẲT
Ý NGHĨA
TỪ ĐẦY ĐỦ
CSDL
Cơ sở dữ liệu
DNS
Domain Name System
FTP
File Transfer Protocol
HTTP
IP
MOMspi
der
PT
RBSE
HyperText
Protocol
Internet Protocol
Multi-Owner
Maintenance spider
Giao thức truyền tập
tin
Giao thức truyền tải
siêu văn bản
Giao thức liên mạng
Spider chuyên phát
hiện các liên hết hỏng
Phương thức
Repository
Software Engineering
SE
Search Engine
TP
Thành phần
URL
Transfer
Hệ thống tên miền
Uniform
Locator
Based
Tên một loại spider đa
năng
Công cụ tìm kiếm
Resource
Địa
trang web
chỉ
của
một
KHOA CÔNG NGHỆ THÔNG TIN – TRƯỜNG ĐẠI HỌC HẢI PHÒNG
LỜI CẢM ƠN
Em xin chân thành cảm ơn sự giúp đỡ nhiệt tình của các thầy cô giáo khoa CNTT
trường ĐHHP và đặc biệt là cô Nguyễn Thị Như, người đã nhiệt tình hướng dẫn, giúp đỡ
em trong suốt quá trình thực hành tìm hiểu về đề tài này.
Trong quá trình làm đề tài tuy đã hết sức cố gắng nhưng không thể tránh khỏi
được những thiếu sót. Rất mong nhận được ý kiến giúp đỡ của thầy cô trong hội đồng.
Hải Phòng, tháng 6 năm 2016
KHOA CÔNG NGHỆ THÔNG TIN – TRƯỜNG ĐẠI HỌC HẢI PHÒNG
LỜI MỞ ĐẦU
Tìm kiếm đã trở thành một điều cần thiết cho hầu hết tất cả mọi người dù cho
người đó là ai, ngành nghề hoặc nhu cầu cá nhân nào. Nhưng khi nói đến các công cụ tìm
kiếm, có rất ít để cho người dùng lựa chọn. Người dùng luôn luôn tìm một công cụ tìm
kiếm an toàn và nhanh chóng mà có thể tạo ra kết quả thành công theo truy vấn tìm kiếm
của họ trên trang đầu tiên. Xung quanh vấn đề này có nhiều nguyên nhân nhưng quan
trọng nhất là sự thông hiểu giữa con người và công cụ tìm kiếm trên mạng – Search
Engine – chưa đạt đến mức có thể giao tiếp tốt với nhau.
Nếu ta hiểu cách thức search engine tổ chức thông tin, thực thi một câu truy vấn
và đặc trưng của ngôn ngữ mà search engine sẽ tiếp cận thì ta có thể tối ưu hoá cơ hội
nhận được các thông tin hữu ích.
Ngày nay, Search Engine đã trở thành một phần không thể thiếu của cuộc sống, và
không ngừng được cải thiện về số lượng và chất lượng các kết quả tìm kiếm. Sự phát
triển của Search Engine được gắn liền với sự phát triển của công nghệ thông tin toàn cầu.
Chính vì vậy, trong đồ án này em đã tập trung nghiên cứu tìm hiểu về các công cụ Search
Engine để có cái nhìn rõ nét hơn về các kỹ thuật, sự phát triển và các ứng dụng của
chúng. Đồng thời em đã xây dựng một ứng dụng tìm kiếm đơn giản với một số kỹ thuật
tìm hiểu được.
Cấu trúc đồ án được trình bày như sau:
KHOA CÔNG NGHỆ THÔNG TIN – TRƯỜNG ĐẠI HỌC HẢI PHÒNG
•
Chương 1. Trình bày các khái niệm tổng quan về Search Engine, lịch sử
phát triển và một số ứng dụng trên thế giới và Việt Nam
• Chương 2. Trình bày thành phần của một Search Engine cùng với cách thức
hoạt động của chúng ra sao, đi cùng với nó là những chiến thuật thu thập dữ
liệu, các phương thức và các chiến lược tìm kiếm.
• Chương 3. Xây dựng một Search Engine đơn giản với cơ sở dữ liệu và các
chức năng nâng cao khác.
Tìm hiểu về công nghệ Search Engine
Chương I: Tổng quan về Search Engine
CHƯƠNG I: TỔNG QUAN VỀ SEARCH ENGINE
I. Định nghĩa Search Engine
1. Search Engine là gì?
Search Engine là một máy tìm kiếm trên Internet, một hệ thống thông minh được
lập trình và nâng cấp nhằm tìm kiếm kết quả và lập chỉ mục cho các website.
Ngày nay các Search Engine không ngừng phát triển sao cho phù hợp với nhu cầu
tìm kiếm thông tin trên các website toàn cầu của người dùng, chúng dựa trên từ khóa tìm
kiếm của người dùng từ đó phân tích trong cơ sở dữ liệu siêu lớn và trả lại danh sách kết
quả phù hợp. Các Search Engine nổi tiếng hiện nay có thể kể đến như: Google, Yahoo,
Bing v…v.
2. Lịch sử phát triển của một số Search Engine trên thế giới
Vào năm 1990 Archie - công cụ tìm kiếm đầu tiên được ra đời bởi Alan Emtage,
tên ban đầu thực chất là ‘Archives’ nhưng sau đó lại được rút ngắn thành Archie. Archie
là một công cụ tìm kiếm cho các trang truyền tập tin theo giao thức FTP phổ biến khắp
thế giới, sự ra đời của Archie đánh dấu một kỷ nguyên mới của Internet và trở thành một
phần không thể thiếu của người dùng Internet.
Sinh viên: Phạm Thành Lộc – CNTT K13
7
Tìm hiểu về công nghệ Search Engine
Chương I: Tổng quan về Search Engine
Hình 1.1: Giao diện của Archie
Hình 1.2: Veronica có thể dễ dàng tìm kiếm trong không gian Gopher
Vào ngày 1/3/1995, máy tìm kiếm Yahoo ra đời thuốc sở hữu của Yahoo. Tính đến
năm 2015, Yahoo Search là công cụ tìm kiếm lớn thứ 3 tại Mỹ với 12,8% lượng người
dùng, đứng sau Google 64,5% và Bing 19,8%. Yahoo cung cấp cho người tìm kiếm nhiều
tính năng như tìm kiếm hình ảnh, video, địa điểm ..v.v nên nhanh chóng trở thành một
trang tìm kiếm thiết yếu vào thời điểm đó.
Hình 1.3: Yahoo Search bao gồm rất nhiều tính năng
Sinh viên: Phạm Thành Lộc – CNTT K13
8
Tìm hiểu về công nghệ Search Engine
Chương I: Tổng quan về Search Engine
Google Search , thường được gọi là Web Search Google hoặc Google , là
một công cụ tìm kiếm web thuộc sở hữu của Google Inc. Ra đời vào năm 1997, đây là
công cụ tìm kiếm được sử dụng nhiều nhất trên mạng toàn cầu. Các thuật toán của
Google liên tục được đổi mới sao cho phù hợp với nhu cầu hiện tại, chính vì vậy mà nó
vẫn là công cụ tìm kiếm được sử dụng nhiều nhất cho đến thời điểm bây giờ khi vượt qua
tất cả các search engine khác như Yahoo, Bing, v…v.
Hình 1.4: Giao diện chính của Google
3. Meta Search Engine
3.1 Meta Search Engine là gì?
Meta Search Engine hay còn gọi là máy tìm kiếm liên hợp. Một máy tìm kiếm
thông thường bao gồm 3 thành phần như : spider, bộ lập chỉ mục Index, bộ tìm kiếm
thông tin, tuy nhiên một Meta Search Engine không bao gồm 3 thành phần trên. Thay vào
đó, với mỗi câu truy vấn của người dùng, máy tìm kiếm liên hợp sẽ chuyển nó đến các
Sinh viên: Phạm Thành Lộc – CNTT K13
9
Tìm hiểu về công nghệ Search Engine
Chương I: Tổng quan về Search Engine
máy tìm kiếm khác (tạm gọi là máy tìm kiếm nguồn) như Google, Yahoo và sau đó xử lí
kết quả trả về từ các máy tìm kiếm này trước khi đưa ra kết quả cho người dùng.
Meta Search Engine có thể kể đến như MetaCrawler được ra mắt vào năm 1995 và
thực hiện vài ngàn lượt truy cập mỗi ngày.
3.2 Ưu và nhược điểm của Meta Search Engine
Ưu điểm:
•
Không tốn tài nguyên cho việc thu thập và lưu trữ các trang web. Thay vào
đó meta search engine chủ yếu tập trung vào phát triển các thuật toán xử lí
kết quả từ các máy tìm kiếm khác để tránh việc trùng lặp kết quả.
• Giúp tăng cơ hội cho người dùng tìm được thông tin họ cần, đặc biệt là
nhưng thông tin chuyên biệt.
Nhược điểm
•
Tốc độ thường chậm hơn vì phải chờ kết quả trả về từ các máy tìm kiếm
khác. Nếu một máy tìm kiếm liên hợp gửi câu truy vấn đến càng nhiều máy
tìm kiếm, tốc độ càng chậm.
• Khả năng tìm kiếm nâng cao như các máy tìm kiếm thông thường khác bị
hạn chế.
• Kết quả trả về của Meta Search Engine chưa chắc tốt hơn kết quả của một
máy tìm kiếm (ví dụ Google).
II. Nguyên lý hoạt động của Search Engine
Search engine điều khiển spider đi thu thập thông tin trên mạng thông qua các siêu
liên kết (hyperlink). Khi spider phát hiện ra một site mới, nó gửi tài liệu (web page) về
cho server chính để tạo cơ sở dữ liệu chỉ mục phục vụ cho nhu cầu tìm kiếm thông tin.
Sinh viên: Phạm Thành Lộc – CNTT K13
10
Tìm hiểu về công nghệ Search Engine
Chương I: Tổng quan về Search Engine
Bởi vì thông tin trên mạng luôn thay đổi nên spider phải liên tục cập nhật các site
cũ. Mật độ cập nhật phụ thuộc vào từng hệ thống search engine. Khi search engine nhận
câu truy vấn từ user, nó sẽ tiến hành phân tích, tìm trong cơ sở dữ liệu chỉ mục & trả về
những tài liệu thoả yêu cầu.
III. Search Engine ngày nay
Cho đến ngày nay thì Search Engine được sử dụng rất rông rãi, do thế giới web
ngày càng mở rộng cũng như nhu cầu tìm kiếm thông tin ngày càng tăng.
Trong những năm gần đây, đã có một số thay đổi :
•
Mạng xã hội: Các trang mạng xã hội như Facebook và Twitter giúp máy
tìm kiếm biết chính xác trang web nào đang được quan tâm. Search engine đã
nhanh chóng cập nhật tín hiệu này vào thuật toán. Giúp bảng kết quả trở nên
chính xác hơn, cập nhật hơn
•
Cá nhân hóa kết quả tìm kiếm: máy tìm kiếm thu thập lịch sử lướt web
của người dùng . Lịch sử đó bao gồm: Những cụm từ nào được họ tìm kiếm
nhiều, những trang web nào họ hay ghé thăm và ở lại lâu. Từ đó, máy tìm kiếm
có thể biết mức độ yêu thích của người dùng đối với các trang web. Kết quả là
với cùng một cụm từ, bảng kết quả tìm kiếm của người này sẽ có khác biệt với
bảng kết quả của người khác .
•
Máy tìm kiếm đã tiến hóa rất nhiều trong những năm gần đây và từ đó
thay đổi cách thức tìm kiếm của mọi người, đặc biệt là google. Cổ máy này đã
trở nên thông minh hơn rất nhiều nhờ cơ chế tự học cũng như khả năng thu thập
dữ liệu vượt trội giúp nó có thể cung cấp kết quả phù hợp nhất với mong muốn
người dùng. Sự vượt trội này của Google thể hiện qua 2 tính năng dưới đây:
1.
Google Suggests : Ra đời từ 8/2008 . Khi bắt đầu gõ , Google sẽ đề xuất
từ khóa, giúp người dùng không mất nhiều thời gian mà vẫn biết được từ khóa
nào phù hợp nhất cho mình
2.
Google Instant : Ra đời 9/2010, Google Instant thay đổi đáng kể cách
tìm kiếm bằng cách ngay lập tức cung cấp kết quả dựa trên những ký tự mà
Sinh viên: Phạm Thành Lộc – CNTT K13
11
Tìm hiểu về công nghệ Search Engine
Chương I: Tổng quan về Search Engine
người dùng gõ vào. Bạn sẽ thu được kết quả ngay khi gõ mà không cần nhấn
enter.
IV. Một số search engine thông dụng ở Việt Nam
1. Netnam
Là một đơn vị thuộc viện hàn lâm - Viện Công nghệ Thông tin, Netnam đặc biệt
chú trọng đến việc thiết kế hệ thống phù hợp với điều kiện cơ sở vật chất - hạ tầng còn
khiêm tốn ở Việt Nam. Vì vậy, một trong những ưu tiên quan trọng trong các yêu cầu xây
dựng hệ thống là khả năng tiết kiệm chi phí đầu tư cơ sở hạ tầng kỹ thuật, đồng thời phải
đáp ứng được nhu cầu mở rộng cao. Do đó Netnam SE được thiết kế theo kiến trúc sử lý
song song.với các khối chức năng như hình dưới đây. Kiến trúc này cho phép hệ thống có
thể phân tán trên từ một đến hàng trăm máy tính, cho phép sử dụng các máy tính PC cỡ
nhỏ thay cho các hệ máy tính chủ cao cấp. Từ đó hệ thống cho phép tiết giảm chi phí tối
đa trong việc xây dựng hạ tầng ban đầu, đồng thời khi nhu cầu tính toán hoặc yêu cầu
phục vụ liên tục tăng, chỉ cần thêm các máy tính vào hệ thống để tăng cường khả năng xử
lý và khả năng phục vụ liên tục mà không cần bổ sung bất cứ thành phần nào khác.
Phần kiến trúc này sẽ giới thiệu về mô hình chia sẻ tính toán song song của hệ
thống.
Về mặt vật lý, các máy tính được có thể kết nối với nhau đơn giản bằng hệ thống
mạng Ethernet 10/100/1000Mbps. Hệ thống cho phép thay đổi nóng (hotswap) một hoặc
một vài đơn vị vật lý (máy tính) mà không làm ảnh hưởng đến hoạt động của toàn hệ
thống, cũng như cho phép thực hiện thay thế tự động một hoặc một vài đơn vị vật lý của
hệ thống khi chúng gặp sự cố bất ngờ.
Sinh viên: Phạm Thành Lộc – CNTT K13
12
Tìm hiểu về công nghệ Search Engine
Chương I: Tổng quan về Search Engine
Hình 1.5: Sơ đồ hệ thống Search Engine của Netnam
Sinh viên: Phạm Thành Lộc – CNTT K13
13
Tìm hiểu về công nghệ Search Engine
Chương I: Tổng quan về Search Engine
Hệ thống được chia thành ba tầng chính, gồm tầng Thu thập thông tin, Nhận dạng
và chuyển đổi thông tin thành dạng text, Lập cơ sở dữ liệu cho các thông tin text. Mỗi
tầng được chia thành nhiều đơn vị độc lập hoạt động theo kiểu chia sẻ tính toán và/hoặc
dự trữ (redundant), từ đó tính tin cậy và hiệu năng của hệ thống cho phép rất cao đối với
các hệ thống đòi hỏi tính tin cậy và hiệu năng cao.Đơn vị khai thác dữ liệu được tích hợp
cùng với phần lập chỉ mục cơ sở dữ liệu, cho phép khai thác qua các clients sử dụng giao
thức TCP/iP trên bất cứ hệ thống nào (Windows, Unix...). Bằng việc chia hệ thống thành
các khối chức năng phối hợp với nhau thông qua các Bộ điều phối, hệ thống có thể được
phân tán để xử lý trên nhiều máy tính nhỏ thay vì tập trung toàn bộ hệ thống trên một
máy tính lớn. Vì vậy, một mặt hệ thống cho phép sử dụng các máy tính cỡ nhỏ (PC hoặc
PC server) cùng phối hợp tính toán xử lý, do đó làm giảm rất nhiều chi phí đầu tư so với
các hệ máy cỡ mini hay mainframe, và có thể đầu tư dần dần theo sự gia tăng của nhu cầu
thay vì đầu tư toàn bộ một lần ban đầu. Mặt khác, nó cho phép, về mặt nguyên tắc, năng
lực tính toán, phục vụ thông tin của hệ thống là không hạn chế ? khi nhu cầu tăng lên chỉ
cần thêm máy tính vào hệ thống mà không phải thay đổi lại hệ thống. Vì vậy, lượng dữ
liệu mà hệ thống có thể phục vụ, về mặt nguyên tắc thiết kế hệ thống, cho phép lên đến
hàng trăm triệu tài liệu.
2. Vinaseek
Vinaseek được phát triển từ năm 1997 theo mô hình của các search engine như
Google, AltaVista, bổ sung khả năng tìm kiếm chính xác theo từ khoá cho Tiếng Việt,
theo mọi bảng mã (TCVN3, VNi, TVCN-6909, ViQR...), theo mọi định dạng tài liệu văn
bản (html, xml, rtf, word, pdf, PostScript...), theo mọi cách bỏ dấu khác nhau (“hoà” hay
“hòa”), tìm kiếm hình ảnh và âm thanh, tìm kiếm gần đúng, tìm kiếm mờ (fuzzy search),
tìm kiếm đồng âm và đồng nghĩa, đang lưu trữ chỉ mục và toàn văn của tất cả các trang
Web Tiếng Việt trên internet (ước chừng 10 triệu văn bản), và nhận được hàng trăm ngàn
lượt truy cập mỗi ngày.
Sinh viên: Phạm Thành Lộc – CNTT K13
14
Tìm hiểu về công nghệ Search Engine
Chương I: Tổng quan về Search Engine
Ngoài việc hỗ trợ thông tin hướng dẫn sử dụng rõ ràng, Vinaseek còn hướng dẫn
cả việc thiết kế trang web để tạo được form tìm kiếm của Vinaseek trên những website
khác. Song song đó, Vinaseek cũng là search engine duy nhất hỗ trợ nhiều bộ mã tiếng
Việt nhất (10 bộ mã), trong khi các trang PanVietnam và Hoatieu chỉ hỗ trợ 3 - 4 bộ mã
tiếng Việt.
Sinh viên: Phạm Thành Lộc – CNTT K13
15
Tìm hiểu về công nghệ Search Engine
Chương II: TP và PT hoạt động của SE
CHƯƠNG II: THÀNH PHẦN VÀ PHƯƠNG THỨC HOẠT ĐỘNG
CỦA SEARCH ENGINE
Một Search Engine bao gồm 3 thành phần cơ bản, đó là: Bộ thu thập thông tin –
Spider, Bộ lập chủ mục – Index, Bộ tìm kiếm thông tin – Search Engine.
I. Bộ thu thập thông tin - Spider
1. Bộ thu thập thông tin – Spider là gì ?
Spider là một chương trình duyệt và thu thập thông tin từ các site theo đúng giao
thức web, sau đó gửi về server chính để lập chỉ mục. Bắt đầu từ một website, Spider sẽ
len lỏi vào từng ngóc ngách trên trang và lần lượt truy cập vào từng liên kết có trên trang.
Đánh dấu các liên kết đã truy cập và nối các trang có link với trang gốc giống như việc
tạo một sợi tơ liên kết 2 trang lại với nhau. Từ một website ban đầu, Spider có thể nối
thêm rất nhiều website lại thành một mạng lưới chằng chịt như một mạng nhện đích thực.
2. Ứng dụng của Spider
Spider được sử dụng cho các mục đích sau:
2.1. Phân tích, thống kê - Statistical Analysis
Spider đầu tiên được dùng để đếm số lượng web server, số tài liệu trung bình của
một server, tỉ lệ các dạng file khác nhau, kích thước trung bình của một trang web, độ kết
dính, …
2.2 Duy trì siêu liên kết – Maintenance
Một trong những khó khăn của việc duy trì một siêu liên kết là nó liên kết với
những trang bị hỏng (dead links) khi những trang này bị thay đổi hoặc thậm chí bị xóa.
Thật không may vẫn chưa có cơ chế nào cảnh báo các bộ duy trì về sự thay đổi này. Trên
Sinh viên: Phạm Thành Lộc – CNTT K13
16
Tìm hiểu về công nghệ Search Engine
Chương II: TP và PT hoạt động của SE
thực tế khi các tác giả nhận ra tài liệu của mình chứa những liên kết hỏng, họ sẽ thông
báo cho nhau, hoặc thỉnh thoảng độc giả thông báo cho họ bằng email.
Một số spider, chẳng hạn MOMspider có thể trợ giúp tác giả phát hiện các liên kết
hỏng cũng như duy trì các cấu trúc siêu liên kết cùng nội dung của một trang web. Chức
năng này lặp lại liên tục mỗi khi một tài liệu được cập nhật, nhờ đó mọi vấn đề xảy ra sẽ
được giải quyết nhanh chóng.
2.3 Ánh xạ địa chỉ web – Mirroring
Mirroring là một kỹ thuật phổ biến trong việc duy trì các kho dữ liệu của FPT. Một
ánh xạ (mirror) sẽ sao chép toàn bộ cấu trúc cây thư mục và thường xuyên cập nhật
những file bị thay đổi. Điều này cho phép nhiều người cùng truy xuất một nguồn dữ liệu,
giảm số liên kết bị thất bại, nhanh hơn và ít chi phí hơn so với truy cập trực tiếp vào site
thực sự chứa các dữ liệu này.
2.4 Phát hiện tài nguyên - Resource Discovery
Có lẽ ứng dụng thú vị nhất của spider là dựng nó để phát hiện tài nguyên. Con
người không thể kiểm soát nổi một khối lượng thông tin khổng lồ trong môi trường
mạng. Spider sẽ giúp thu thập tài liệu, tạo và duy trì cơ sở dữ liệu, phát hiện và xoá bỏ
các liên kết hỏng nếu có, kết hợp với công cụ tìm kiếm cung cấp thông tin cần thiết cho
con người.
2.5 Kết hợp các công dụng trên- Combined uses
Một spider có thể đảm nhận nhiều chức năng. Ví dụ RBSE Spider vừa thống kê số
lượng tài liệu thu được vừa tạo cơ sở dữ liệu. Tuy nhiên những ứng dụng như thế cũng
khá ít ỏi.
Sinh viên: Phạm Thành Lộc – CNTT K13
17
Tìm hiểu về công nghệ Search Engine
Chương II: TP và PT hoạt động của SE
3. Spider chỉ mục - Spider Indexing
Trong quá trình thu thập thông tin phục vụ cho bộ lập chỉ mục, ta cần giải quyết
những vấn đề sau:
Một là: Trong môi trường mạng, spider lấy thông tin từ các site. Vậy spider sẽ bắt
đầu từ site nào? Điều này hoàn toàn phụ thuộc vào spider. Mỗi spider khác nhau sẽ có
những chiến lược khác nhau. Thường thì spider sẽ ghé thăm các site phổ biến hoặc những
site có nhiều liên kết dẫn đến nó.
Hai là: Ai sẽ cung cấp địa chỉ của các site này cho spider?
Có 2 nguồn:
Spider nhận các URL ban đầu từ user.
Spider phân tích các trang web để lấy các URL mới, đến lượt các URL này trở
thành địa chỉ đầu vào cho spider. Quá trình này được lặp lại liên tục.
Ba là: Chọn dữ liệu nào trong tài liệu để lập chỉ mục?
Quyết định chọn dữ liệu nào trong tài liệu cũng hoàn toàn phụ thuộc vào spider,
thường thì những từ được liệt kê như sau được xem là quan trọng:
Ở góc cao của tài liệu.
Trong các đề mục
Được in đậm (inktomi)
Trong URL.
Trong tiêu đề (quan trọng)
Trong phần miêu tả trang web (description) .
Trong các thẻ dành cho hình ảnh (ALT graphisc).
Sinh viên: Phạm Thành Lộc – CNTT K13
18
Tìm hiểu về công nghệ Search Engine
Chương II: TP và PT hoạt động của SE
Trong các thẻ chứa từ khóa.
Trong các text liên kết.
Một số spider lập chỉ mục trên tiêu đề, hoặc một số đoạn văn bản đầu tiên hoặc
toàn bộ tài liệu (full text). Một số khác lại lập chỉ mục trên các thẻ META (META tags)
hoặc các thẻ ẩn, nhờ vậy tác giả của trang web được quyền ấn định từ khoá cho tài liệu
của mình. Tuy nhiên chức năng này bị lạm dụng quá nhiều do đó các thẻ META không
còn giữ được giá trị ban đầu của chúng nữa.
4. Các chiến thuật thu thập dữ liệu
Trước khi các trang web được đánh chỉ mục, tất cả các trang web phải được lấy về
máy của spider. Để lấy được tất cả các trang web, spider phải có chiến thuật. Từ một số
trang web có sẵn, spider lọc ra danh sách các liên kết, rồi từ đó dò tìm các trang khác.
Có 3 chiến thuật tìm kiếm Heuristic sau: tìm kiếm theo chiều sâu, tìm kiếm theo
chiều rộng và tìm kiếm ngẫu nhiên.
4.1 Chiến thuật tìm kiếm theo chiều sâu
Từ một danh sách chứa các liên kết cần duyệt, thực hiện các bước sau:
(1) Cho danh sách = {trang đầu tiên}
(2) Lấy trang đầu tiên trong danh sách.
Nếu có qua (3)
Nếu không qua (5)
(3) Trang này đã xét tới chưa?
Nếu rồi, quay lại (2)
Nếu chưa, qua (4)
(4) Đánh dấu đã tới rồi. Phân tích và tìm xem liên kết có trong trang đó không?
Sinh viên: Phạm Thành Lộc – CNTT K13
19
Tìm hiểu về công nghệ Search Engine
Chương II: TP và PT hoạt động của SE
(4a) Nếu có, thêm liên kết này vào đầu danh sách. Quay lại (4)
(4b) Nếu không, quay lại (2).
(5) Kết thúc.
4.2 Chiến thuật tìm kiếm theo chiều rộng
Từ một danh sách chứa các liên kết cần duyệt, thực hiện các bước sau:
(1) Cho danh sách = {trang đầu tiên}
(2) Lấy trang đầu tiên trong danh sách.
Nếu có qua (3)
Nếu không qua (5)
(3) Trang này đã xét tới chưa?
Nếu rồi, quay lại (2)
Nếu chưa, qua (4)
(4) Đánh dấu đã tới rồi. Phân tích và tìm xem liên kết có trong trang đó
không?
(4a) Nếu có, thêm liên kết này vào cuối danh sách. Quay lại (4)
(4b) Nếu không, quay lại (2).
(5) Kết thúc.
4.3 Chiến thuật tìm kiếm theo ngẫu nhiên
Từ một danh sách chứa các liên kết cần duyệt, thực hiện các bước sau:
(1) Cho danh sách = {trang đầu tiên}
(2) Lấy ngẫu nhiên một trang trong danh sách.
Nếu có qua (3)
Sinh viên: Phạm Thành Lộc – CNTT K13
20
Tìm hiểu về công nghệ Search Engine
Chương II: TP và PT hoạt động của SE
Nếu không qua (5)
(3) Trang này đã xét tới chưa?
Nếu rồi, quay lại (2)
Nếu chưa, qua (4)
(4) Đánh dấu đã tới rồi. Phân tích và tìm xem liên kết có trong trang đó
không?
(4a) Nếu có, thêm liên kết này vào cuối danh sách. Quay lại (4)
(4b) Nếu không, quay lại (2).
(5) Kết thúc.
5. Chi phí và hiểm họa khi sử dụng web spider
Việc sử dụng các Spider tốn khá nhiều chi phí, đặc biệt là khi chúng được điều
khiển từ xa trên internet. Phần này chúng ta sẽ cùng thảo luận về những hiểm hoạ do
spider gây ra.
5.1 Qúa tải mạng và server - Network resource and server load
Sau một khoảng thời gian dài, thường là một tháng, spider sẽ bắt đầu hoạt động
một cách liên tục. Để tăng tốc nhiều spider được phóng ra đồng thời do đó cần có băng
thông lớn. Tài nguyên mạng bị khai thác quá mức khi spider yêu cầu một lượng lớn thông
tin trong khoảng thời gian quá ngắn (rapid fire). Kết quả là thiếu băng thông cho những
ứng dụng khác. Server vừa phải phục vụ yêu cầu của spider vừa cung cấp dịch vụ cho
user, do đó yêu cầu của spider tăng lên bao nhiêu thì dịch vụ sẽ giảm xuống bấy nhiêu.
Tác giả của một con spider đã thử nghiệm bằng cách cho thi hành 20 lượt truy cập đồng
thời vào server của anh ta. Những lúc spider thu thập thông tin, server bị chậm lại. Trong
Sinh viên: Phạm Thành Lộc – CNTT K13
21
Tìm hiểu về công nghệ Search Engine
Chương II: TP và PT hoạt động của SE
vòng một tuần spider đã viếng thăm site này với một yêu cầu kinh khủng. Chỉ sau 170
lượt truy xuất liên tục, thử nghiệm thất bại do server bị quá tải.
Rapid fire thực sự là thảm hoạ. Hiệu quả truyền tải thông tin dạng này bằng giao
thức web hay HTTP sụt giảm thấy rõ. Những giao thức mới đang được xem xét nhằm
cứu vãn tình thế.
5.2 Sự cập nhật quá mức - Updating overhead
Người ta cho rằng các cơ sở dữ liệu do web spider tạo ra có thể được cập nhật tự
động nhưng cho đến thời điểm này vẫn chưa có cơ chế kiểm soát sự thay đổi trên web
một cách hiệu quả. Cập nhật thông tin rất quan trọng nhưng qỳa thường xuyên là điều
không cần thiết.
Xuất phát từ thực tế đó HTTP đưa ra kỹ thuật ‘if – Modified – Since’ giúp các user
– agent xác định được thời điểm tài liệu thay đổi. Spider phát hiện điều này chỉ khi nó lưu
lại các thông tin cũ nhưng sẽ tốn nhiều bộ nhớ & cần dữ liệu phức tạp.
Một trong những đặc tính phổ biến của spider là khả năng tiếp nhận các từ cần tìm
trong khi vẫn thu thập dữ liệu. Tuy nhiên một số người cho rằng đặc tính này không đáng
hoan nghênh bởi hai lý do:
Đầu tiên, các tác vụ tìm kiếm của người sử dụng cuối (end - user) góp phần đẩy
server vào chỗ quá tải.
Thứ hai, không có cơ sở đảm bảo có mối quan hệ giữa các từ cần tỡm, đỳng
chính tả và tối ưu đối với cơ sở dữ liệu. Ví dụ, nếu bộ tìm kiếm không hỗ trợ
các toán tử boolean, một user cần dữ liệu về xe máy muốn có được thông tin
đúng thay vì nhập vào cụm từ ‘Ford and garage’ phải nhập vào từ ‘car’. Nhưng
người đó không hề ý thức được điều này.
Sinh viên: Phạm Thành Lộc – CNTT K13
22
Tìm hiểu về công nghệ Search Engine
Chương II: TP và PT hoạt động của SE
Một khía cạnh nguy hiểm nữa bắt nguồn từ sự định hướng sai lầm của end – user.
Một số người sử dụng công cụ của mình rất tốt như dự đoán được lượng tài liệu lớn nhất
có thể có, biết chính xác nơi cần tìm dữ liệu, giới hạn thời gian sử dụng spider, trong khi
đó một số khác lại lạm dụng khả năng của spider một cách vô tình hoặc cố ý. Vì vậy các
tác giả viết spider đề nghị chỉ nên phân phát sản phẩm của mình cho những end-user
‘hiểu’ được web spider và những khó khăn trong môi trường mạng.
5.3 Những tình huống không mong đợi - Bad implementations
Thay vì kiểm tra trên máy cục bộ trước, một số tác giả lần đầu tiên viết spider cho
thử ngay trên các server thực sự, điều này làm đau đầu không ít nhà quản trị web (web
master).
Truy xuất trùng lặp có thể xảy ra khi spider không lưu lại dấu vết những nơi nó đã
đi qua hoặc nó không nhận diện được các URL mặc dù khác nhau về tên nhưng lại cùng
dẫn đến một địa chỉ, ví dụ địa chỉ DSN & IP.
Đôi khi, spider lãng phí thời gian và tài nguyên chỉ để thu về những tài liệu mà sau
đó phải vứt đi. Ví dụ hệ thống chỉ quan tâm đến file văn bản (text file) nhưng spider lại
nhận cả những loại file khác như file hình ảnh, file thực thi …
Trong môi trường mạng có những vùng gần như vô tận. Ví dụ, cứ mỗi lần phân
tích một trang spider nhận về cùng một URL nhưng xa hơn một cấp, ‘/cgi-bin/pit/’, và
tiếp tục ‘/cgi-bin/pit/a/’, ‘/cgi-bin/pit/a/a’ …. . Sự lặp lại không có điểm dừng này được
gọi là các lỗ đen (black holes)
II. Bộ chỉ mục - Index
1. Bộ lập chỉ mục – Index là gì ?
Hệ thống lập chỉ mục hay còn gọi là hệ thống phân tích và xử lý dữ liệu, thực hiện
việc phân tích, trích chọn những thông tin cần thiết (thường là các từ đơn , từ ghép , cụm
Sinh viên: Phạm Thành Lộc – CNTT K13
23
Tìm hiểu về công nghệ Search Engine
Chương II: TP và PT hoạt động của SE
từ quan trọng) từ những dữ liệu mà spider thu thập được và tổ chức thành cơ sở dữ liệu
riêng để có thể tìm kiếm trên đó một cách nhanh chóng, hiệu quả. Hệ thống chỉ mục là
danh sách các từ khoá, chỉ rõ các từ khoá nào xuất hiện ở trang nào, địa chỉ nào.
2. Khái quát về hệ thống lập chỉ mục
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 (thường là các cụm từ quan trọng) để 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.
Mô hình xử lý tổng quát của một hệ thống được trình bày như sau:
Lọc các thông tin thừa, chuyển tài liệu về dạng văn bản
Tách văn bản thành các từ
Loại bỏ stop-word
Tính trọng số và loại bỏ những từ có trọng số thấp
Lập chỉ mục
Danh sách các trang Web cần lập chỉ mục
Danh sách các từ stop-word
TỪ ĐIỂN
CSDL chỉ mục thông tin
Loại bỏ hậu tố
Danh sách các hậu tố
Sinh viên: Phạm Thành Lộc – CNTT K13
24
Tìm hiểu về công nghệ Search Engine
Chương II: TP và PT hoạt động của SE
Hình 2.1: Lưu đồ xử lý cho hệ thống lập chỉ mục
Lập chỉ mục là quá trình phân tích và xác định các từ, cụm từ thích hợp cốt lõi có
khả năng đại diện cho nội dung của tài liệu. Như vậy, vấn đề đặt ra là phải rút trích ra
những thông tin chính, có khả năng đại diện cho nội dung của tài liệu. Thông tin này phải
“vừa đủ”, nghĩa là không thiếu để trả ra kết quả đầy đủ so với nhu cầu tìm kiếm, nhưng
cũng phải không dư để giảm chi phí lưu trữ và chi phí tìm kiếm và để loại bỏ kết quả dư
thừa không phù hợp. Việc rút trích này chính là việc lập chỉ mục trên tài liệu. Trước đây ,
quá trình này thường được các chuyên viên đã qua đào tạo thực hiện một cách “thủ công
“ nên có độ chính xác cao. Nhưng trong môi trường hiện đại ngày nay, với lượng thông
tin khổng lồ thì việc lập chỉ mục bằng tay không còn phù hợp, phương pháp lập chỉ mục
tự động mang lại hiệu quả cao hơn.
Một thủ tục lập chỉ mục tự động cơ bản cho các tài liệu tiếng Anh có thể được xử
lý như sau:
1. Step of tokenization: tách văn bản ra thành các chuỗi nhờ vào khoảng trắng,
mỗi chuỗi xem như là một từ.
Sinh viên: Phạm Thành Lộc – CNTT K13
25