Cấu trúc tìm kiếm của
bộ máy làm việc của google
Search Engine gồm 3 bộ phận chính. Đó là Search
Server, Index, Search Backend.
Trong đó:
· Search Server đảm nhiệm việc trả về
kết quả tìm kiếm cho người dùng.
· Seach Backend đảm nhiệm việc thu thập
thông tin toàn bộ website trên toàn thế giới.
· Index giống như 1 cơ sở dữ liệu được
sử dụng bởi Search Server và Search Backend.
Search Server là trả về kết quả tìm kiếm của người dùng nhanh
nhất có thể.Vì nếu không
trả về tức thì mà mất 10s,
1 phút, 2 phút mới trả về kết quả thì quả thực sẽ không thể trở thành 1 công cụ
tìm kiếm được.
Search Backend thì khác hoàn toàn với Search Server. Cho dù xử
lí mất 5p, 10p hay 1 tiếng đi chăng nữa thì cũng không thành vấn đề. Miễn là nó
thu thập dữ liệu từ toàn bộ website trên toàn thế giới và tạo ra Index mà
Search Server dễ dùng là được.
Index là lưu thông tin toàn bộ dữ liệu đã được thu thập từ
Search Backend. Khi người dùng tìm kiếm, Search Server chỉ cần tìm trong Index
và trả về kết quả là xong. Chứ không phải lúc đó mới bắt đầu đi thu thập dữ liệu
và trả về.
Về cơ bản thì Search Server nó cũng
không khác gì Web Server cả. Nó chủ yếu đảm nhiệm những nhiệm vụ chính sau:
· Quản lí truyền thông với người dùng
· Phân tích request từ người dùng
· Tìm kiếm thông tin cần thiết từ Index
· Trả kết quả về cho người dùng
Trong trường hợp mà Index không có kết
quả nào, thì khi đó Search Search trả về kết quả là “Hiện tại không tìm thấy
kết quả nào” đến cho người dùng.
Do đó việc tổ chức dữ liệu trong Index
để làm sao mà Search Server có thể lấy nhanh nhất là 1 điều vô cùng quan trọng.
Crawling là có nhiệm vụ đi thu thập toàn
bộ trang web trên toàn thế giới về để xử lý. Vì công việc này vô cùng mất thời
gian nên nó đã phân tách ra thành nhiều bộ phận con hơn để xử lý, đó là
Crawler.
Hiện nay trên toàn thế giới chắc phải
có đến tỉ tỉ website mất. Vậy mà Google đi thu thập từng đó website về để phục
vụ cho người dùng thì quả thực quá kinh khủng.
Nhưng vì quá trình crawl, thu thập đến
việc tạo Index là vô cùng mất thời gian. Nên bạn nào có blog riêng mà sau khi
viết bài xong, search trên Google nó không ra là vì thế. Phải đợi Google crawl
đến trang web của mình thì lúc đó các bạn search trên Google mới ra được.
Những trang web mà Crawler thu thập sẽ
lưu tạm thời vào 1 nơi giống như cơ sở dữ liệu, cái này được gọi là Repository
(kho).
Bộ phận tạo Index (Index Creation) sẽ lấy trang web từ Repository
ra để phân tích, xử lý và cuối cùng là tạo ra Index để cho Search Server dùng.
Đối với Search Engine thì đây là 1
công việc vô cùng vô cùng mất thời gian. Chính vì luôn có thằng tạo trước dữ
liệu như vậy mà đã làm cho Google luôn trả về kết quả ngay như tức thì.
Vậy khi nào thì Google sẽ crawl trang
web của mình?
Với trang web nào nhiều người yêu
thích, nội dung chất lượng thì luôn luôn được ưu tiên crawl trước. Những trang
web nào nội dung kém chất lượng thì sẽ mất tầm 3 đến 1 tuần mới được crawl.
Làm thế nào để thúc Google crawl trang
của mình?
Google cung cấp 1 trang để
gửi yêu cầu thực hiện crawl. Chỉ cần vào đó đăng kí tên website, gửi nội dung
trang muốn crawl là được. Còn nếu không thực hiện thì mình khẳng định sẽ mất
tầm từ 3 đến 7 ngày mới được crawl.
Index là linh
hồn của việc tìm kiếm
Nhiệm vụ chính của Index là lưu dữ
liệu 1 cách an toàn và giúp Search Server trả về kết quả nhanh nhất có thể. Để
dễ hình dùng thì chúng ta có thể xem Index như là 1 Database.
Trong Index có rất nhiều thông tin,
phù hợp với nhiều mục đích tìm kiếm khác nhau.
Ở trong 1 Search Engine thì Index
chính là 1 “cấu trúc dữ liệu” mà chỉ có Search Engine mới có thể hiểu được.
Nên việc thiết kế Index như nào, tổ
chức dữ liệu ra sao để cho Search Server có thể query và trả về kết quả nhanh
nhất có thể là điều vô cùng quan trọng. Và bài hôm nay mình sẽ không đi sâu vào
giải thích cách tổ chức dữ liệu của Index nữa.
No comments:
Post a Comment