Tìm hiểu về việc thực thi quá trình crawler trong module index của máy tìm

Một phần của tài liệu KHAI PHÁ DỮ LIỆU WEB VÀ MÁY TÌM KIẾM potx (Trang 60 - 63)

c. Module tìm kiếm s.cgi

4.3 Tìm hiểu về việc thực thi quá trình crawler trong module index của máy tìm

index của máy tìm kiếm VietSeek.

4.3.1 Quá trình crawler trong ASPseek và nhu cầu song song hóa

Aspseek sử dụng một cấu trúc dữ liệu bảng băm để làm hàng đợi lưu các url cần được index. Các URL trong hàng đợi được nhóm theo site, các url thuộc cùng một site được nhóm vào một danh sách FIFO gọi là CSiteUrls. Khi có một url thuộc vào một site cần đưa vào hàng đợi, url đó được thêm vào cuối danh sách url của site nó thuộc vào. Toàn bộ hàng đợi là một bảng băm các CsiteUrls và có một con trỏ trỏ tới site hiện tại đang được duyệt. Khi cần lấy ra một url để duyệt tiếp, url ở đỉnh danh sách của site hiện tại sẽ được trích ra. Cấu trúc của hàng đợi này như sau:

Trong đó: mỗi CsiteUrls là một danh sách một chiều các mảng chứa url thuộc về cùng một site. Và CurlLinks là một mảng gồm 100 url liên tiếp.

m_current

CSiteUrls CSiteUrls ... CSiteUrls

Hình 4.a:Cấu trúc của hàng đợi frontierCSiteQueue trong ASPseek

m_last m_first

CUrlLinks CUrlLinks ... CUrlLinks

Sai Đúng Có Không Sai Đúng Có Không Có

URL outgoing từ trang web được tải

URL hạt nhân

Thêm URL vào hàng đợi

Kết thúc?

Duyệt file cấu hình

URLHđoi<n

Thêm URL từ CSDL vào Hđợi

Lấy URL tiếp theo để duyệt

Tải và duyệt trang Web

Lưu URL vào CSDL Cần index lại? End Start URL CSDL

Lưu thông tin vào CSDL, và file nhị phân

• ASPseek thực hiện việc duyệt Web theo chiều rộng theo chiến lược mù, nó cố gắng tải nội dung tất cả url nó gặp trong quá trình duyệt mà không thực hiện việc lựa chọn hay tính điểm cho các URL cần duyệt.

• Đầu tiên chương trình sẽ tải file cấu hình aspseek.conf, lấy ra các URL bắt đầu (URL hạt nhân) được chỉ định trong lệnh Server. Sau đó module index sẽ kiểm tra xem các URL khởi đầu này đã tồn tại trong cơ sở dữ liệu hay chưa, nếu chưa thông tin về chúng sẽ được lưu vào các bảng site và urlword trong cơ sở dữ liệu MySQL đồng thời được thêm vào trong hàng đợi. Trong trường hợp URL đã có mặt trong cơ sở dữ liệu, chương trình sẽ kiểm tra xem nó có cần phải index lại hay không, nếu cần URL đó cũng được thêm vào trong hàng đợi.

• Trong quá trình duyệt nội dung một url, các địa chỉ url được trỏ tới từ url đó đầu tiên sẽ được thêm vào trong cơ sở dữ liệu (bảng urlword, sites) nếu nó chưa có trong đó và được thêm hàng đợi nếu nó thỏa mãn các điều kiện hạn chế do người dùng chỉ định (không quá sâu so với URL bắt đầu, không vượt khỏi server hiện tại, không nằm trong các url bị cấm...). Đồng thời trong quá trình duyệt, nội dung url sẽ được lưu vào trong cơ sở dữ liệu (bảng urlwordNN, wordurl ) cũng như lưu vào các file nhị phân trung gian.

• Tại một thời điểm, nếu số lượng inactiveSite (số lượng các CsiteUrls có một hoặc nhiều hơn các url chưa được index) trong hàng đợi nhỏ hơn một số lượng xác định, aspseek sẽ truy vấn cơ sở dữ liệu và thêm vào trong hàng đợi các url đã tới thời hạn index lại (các url có giá trị trường next_index_time nhỏ hơn thời điểm hiện tại).

• Kết quả thu được của quá trình crawler trong ASPseek bao gồm:

• Thông tin về các site, url và từ khóa được lưu trong các bảng của cơ sở dữ liệu. • Thông tin nội dung của các url sau khi đã loại bỏ các từ dừng (stopword) được lưu trong các file nhị phân có cấu trúc đặc biệt gọi là các file delta.

• Sau khi quá trình crawler kết thúc, nội dung các file delta sẽ được sắp xếp và trộn với nội dung các file nhị phân cũ trong cơ sở dữ liệu trong một quá trình gọi là index ngược. Qúa trình này sẽ chuyển cấu trúc các file nhị phân từ dạng định dạng theo url sang định dạng theo từ khóa để phục vụ cho nhu cầu tìm kiếm url theo từ khóa của người dùng. Sau khi trộn, nội dung của các file delta bị cắt bỏ.

Một phần của tài liệu KHAI PHÁ DỮ LIỆU WEB VÀ MÁY TÌM KIẾM potx (Trang 60 - 63)

Tải bản đầy đủ (PDF)

(68 trang)