Tìm hiểu về hoạt động của các công cụ tìm kiếm
Internet và World Wide Web có
đến hàng trăm triệu website có sẵn
mang các thông tin về nhiều chủ
đề khác nhau. Tuy nhiên hầu hết
chúng đều được đặt tiêu đề theo ý
thích của tác giả, và được đặt trên
máy chủ với các tên khó hiểu. Khi
bạn cần biết về một chủ đề nào thì
sẽ phải đọc các trang nào? Phần
lớn mọi người khi băn khoăn về vấn đề này họ sẽ sử dụng một công cụ
tìm kiếm trên Internet (Internet search engine).
Search engine trên Internet là các site đặc biệt trên web, được thiết kế để
giúp mọi người tìm kiếm thông tin được lưu trên các site khác nhau. Có
nhiều cách khác nhau trong cách tìm kiếm này, nhưng tất cả chúng đều
thực hiện ba nhiệm vụ cơ bản:
Tìm kiếm Internet – hoặc chọn các mẩu thông tin trên Internet –
dựa trên các từ quan trọng
Giữ một chỉ mục cho các từ tìm thấy cùng với địa chỉ tìm thấy
chúng
Cho phép người dùng tìm kiếm các từ hoặc cụm từ được tìm kiếm
trong chỉ mục đó.
Các cỗ máy tìm kiếm trước kia đều giữ chỉ mục của hàng trăm ngàn trang
web và tài liệu, chúng thường nhận có thể một hoặc hai nghìn yêu cầu tìm
kiếm mỗi ngày. Ngày nay, cỗ máy tìm kiếm hàng đầu đánh chỉ mục hàng
crawling. Để tạo và duy trì một danh sách hữu dụng cho việc tìm kiếm thì
spider của cỗ máy tìm kiếm phải xem được nội dung của các trang web.
Vậy cách spider thực hiện công việc của nó trên Web như thế nào? Điểm
khởi đầu là danh sách các máy chủ và trang web phổ biến. Spider sẽ bắt
đầu với một site phổ biến nào đó, đánh chỉ mục các từ trên trang của nó
và theo các liên kết tìm thấy bên trong site này. Theo cách này, hệ thống
Spider sẽ nhanh chóng thực hiện công việc của nó và trải rộng ra toàn bộ
các phần được sử dụng rộng rãi nhất của web. Google.com bắt đầu như một cỗ máy tìm kiếm của trường đại học. Trong
bài viết mô tả về cách hệ thống được xây dựng như thế nào, Sergey Brin
và Lawrence Page đã lấy một ví dụ về spider của họ có thể làm việc
nhanh đến cỡ nào. Họ đã xây dựng hệ thống ban đầu để có thể sử dụng
nhiều spider, thường là có đến 3 spiders hoạt động đồng thời. Mỗi Spider
có thể giữ tới khoảng 300 kết nối với các trang web mỗi thời điểm. Với
hiệu suất đỉnh của nó, sử dụng đến 4 Spider, hệ thống của họ có thể tìm
thêm trên 100 trang mỗi giây, tạo ra khoảng 600KB dữ liệu mỗi giây.
Việc giữ được tốc độ tìm kiếm nhanh cũng có nghĩa phải xây dựng hệ
thống có thể cung cấp được các thông tin cần thiết cho Spider. Hệ thống
Google trước kia có một máy chủ chuyên dụng dùng để cung cấp các
URL cho Spider. Thay cho việc phụ thuộc vào nhà cung cấp dịch vụ về
DSN để dịch tên của máy chủ thành địa chỉ, Google đã có DSN của chính
họ để độ giữ chậm diễn ra chỉ trong khoảng thời gian tối thiểu.
Khi Spider của Google xem các trang HTML, nó lưu ý hai thứ:
Các từ bên trong trang
Nơi tìm thấy các từ
Tất cả vấn đề này khởi nguồn từ chủ sở hữu của trang này, họ muốn trang
web được hiển thị trong kết quả tìm kiếm của các cỗ máy tìm kiếm này.
Nhiều khi, chủ sở hữu không muốn trang của họ xuất hiện trên các trang
kết quả của một cỗ máy tìm kiếm hoặc không muốn Spider truy cập vào
trang của họ. (Ví dụ, một game xây dựng các trang active mới mỗi lần
các section của trang được hiển thị hoặc theo sau là các liên kết mới. Nếu
một Spider Web có thể truy cập vào và bắt đầu đi theo tất cả liên kết cho
các trang mới thì game có thể mắc lỗi activity cho player tốc độ cao và
kéo dài sự kiểm soát.) Để tránh tình trạng này, giao thức loại trừ robot đã
được phát triển. Giao thức này bổ sung vào phần thẻ meta ở bắt đầu mỗi
trang, thông báo cho Spider phải rời trang của nó – không đánh chỉ mục
các từ trên trang này hoặc cố gắng lần theo các liên kết của nó.
Xây dựng chỉ mục
Khi Spider đã hoàn tất nhiệm vụ tìm thông tin trên các trang web (chúng
tôi lưu ý rằng đây là nhiệm vụ không bao giờ hoàn tất vì luôn có sự thay
đổi của các trang nên điều đó có nghĩa là Spider sẽ luôn thực hiện nhiệm
vụ của nó), cỗ máy tìm kiếm phải lưu các thông tin này theo một cách nào
đó để có lợi nhất. Có hai thành phần chính liên quan tới việc tạo dữ liệu
đã thu thập được để có thể truy cập với người dùng:
Thông tin được lưu với dữ liệu
Phương pháp mà thông tin được đánh chỉ mục
Trong trường hợp đơn giản nhất, một cỗ máy tìm kiếm có thể chỉ lưu các
từ và URL nơi mà nó tìm ra. Trong thực tế, điều này sẽ làm hạn chế rất
nhiều vì sẽ không có cách nào để nói từ đó đã được sử dụng là quan trọng
hay không có giá trị trên trang đó, hoặc từ đã được sử dụng một lần hay
nhiều lần, hoặc trang đó có chứa liên kết đến các trang khác có chứa từ
hay không. Nói theo cách khác là sẽ không có cách nào xây dựng được
ký tự “phổ biến” có thể lâu hơn nhiều so với việc tìm một từ bắt đầu với
một ký tự kém phổ biến hơn. Thuật toán Hash cân bằng sự khác nhau
này, và giảm thời gian trung bình để tìm kiếm mỗi entry. Nó cũng phân
biệt chỉ mục với entry thực tại. Bảng hash gồm có các số được đánh hash
cùng với một con trỏ dữ liệu, con trỏ này có thể được phân loại theo bất
cứ cách nào cho phép lưu trữ hiệu quả nhất. Sự kết hợp giữa việc đánh
chỉ mục hiệu quả và lưu trữ hiệu quả làm cho người dùng có thể thực hiện
các thao tác tìm kiếm một cách nhanh chóng thậm chí khi họ tạo một tìm
kiếm phức tạp.
Xây dựng một tìm kiếm
Việc tìm kiếm thông qua một chỉ mục cần người dùng xây dựng một truy
vấn và đệ trình nó thông qua search engine. Truy vấn có thể khá đơn giản
như một từ chẳng hạn. Việc xây dựng một truy vấn phức tạp hơn cần sử
dụng các toán tử Boolean để cho phép bạn lọc và mở rộng dưới dạng tìm
kiếm.
Các toán tử Boolean thường được sử dụng nhất là:
AND – Tất cả các mục đã được nối bằng toán tử này phải xuất hiện
trong trang hoặc các tài liệu. Một số search engine thay thế toán tử
này bằng dấu “+”.
OR – Ít nhất một trong các mục đã được nối bằng “OR” phải xuất
hiện trong các trang hoặc tài liệu.
NOT – Mục hoặc các mục sau toán tử này không xuất hiện trong
trang hoặc tài liệu, một số search engine thay thế bằng dấu “-”.
FOLLOWED BY – Một trong số các mục phải được theo sau trực
tiếp bởi mục khác.
NEAR – Một trong các mục phải nằm bên trong một số các từ cụ
thể
site này chỉ làm việc với các truy vấn đơn giản vì việc đặt khái niệm cho
một truy vấn khá phức tạp.