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 Giới thiệu về máy tìm kiếm ASPseek và đề xuất giải pháp song song hóa (Trang 60 - 63)

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

4.3Tì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. Tồ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 Giới thiệu về máy tìm kiếm ASPseek và đề xuất giải pháp song song hóa (Trang 60 - 63)