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
trăm triệu trang và đáp trả đến hàng chục triệu yêu cầu mỗi ngày. Trong bài
này chúng tôi muốn giới thiệu về các nhiệm vụ chính sẽ được thực hiện như
thế nào, và cách các cỗ máy tìm kiếm này sẽ xử lý như thế nào để cho phép
bạn tìm thông tin cần thiết trên web.
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.
Spider lấy nội dung của trang web và tạo các từ khóa tìm kiếm để cho phép
người dùng trực tuyến có thể tìm các trang mong muốn.
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ừ
Các từ xuất hiện trong tiêu đề, phụ đề, các thẻ meta và các phần quan trọng
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.
“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
nó có khả năng phân tích cú pháp truy vấn về các từ khóa để áp dụng cho chỉ
mục của các site mà nó đã xây dựng. Tuy nhiên 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.
hfghfghfghfghfghfgg