8 Các Xu Hướng Phát Triển Của Máy Tìm Kiếm

Preview:

Citation preview

IT4853 Tìm kiếm và trình diễn thông tin

Chương 8: Các xu hướng phát triển

Máy tìm kiếm trong mạng toàn cầuNguyễn Bá Ngọc

2

Nội dung chính

Căn bản tìm kiếm trên Web Quảng cáo trong tìm kiếm Phát hiện trùng lặp (gần) Thu thập dữ liệu trên web

Bộ thu thập đơn giản Bộ thu thập trong thực tế

3

Nội dung chính

Căn bản tìm kiếm trên Web Quảng cáo trong tìm kiếm Phát hiện trùng lặp (gần) Thu thập dữ liệu trên web

Bộ thu thập đơn giản Bộ thu thập trong thực tế

4

Tổng quan tìm kiếm trên Web

5

Tìm kiếm là hoạt động thường xuyên nhất trên Web

6

Máy tìm kiếm có vai trò thúc đẩy sự phát triển của web

Đơn giản hóa việc tìm kiếm tài liệu trên web → Đồng thời là động lực thúc đẩy người dùng đưa nội

dung lên web Có nên đưa ra thông tin nếu không ai đọc nó? Có nên đưa ra nội dung nếu không thu được lợi nhuận từ

những nội dung đó? Ai đó phả trả phí vận hành cho web

Máy chủ, thiết bị mạng, việc biên soạn nội dung v.v. Ngày nay phần lớn chi phí được trả nhờ quảng cáo trong tìm

kiếm Tìm kiếm giúp giải quyết vấn đề kinh phí vận hành web

7

Tìm kiếm trên Web vs. trường hợp tổng quát

Có thể coi Web là một bộ dữ liệu lớn, phong phú và được biên soạn bởi rất nhiều người → nhiều tài liệu trùng lặp – cần phát hiện những tài liệu này

Bất kỳ ai cũng có thể đưa thông tin lên web → nhiều spam – cần phát hiện spam

Web rất lớn → cần xác định quy mô của web

8

Nội dung chính

Căn bản tìm kiếm trên Web Quảng cáo trong tìm kiếm Phát hiện trùng lặp (gần) Thu thập dữ liệu trên web

Bộ thu thập đơn giản Bộ thu thập trong thực tế

9

Thế hệ đầu của quảng cáo trong tìm kiếm: Goto (1996)

10

Thế hệ đầu của quảng cáo trong tìm kiếm: Goto (1996)

Kết quả tìm kiếm được xếp hạng theo giá – thu nhập tối đa cho Goto.

Không phân biệt giữa quảng cáo/tài liệu. Chỉ hiển thị một danh sách kết quả duy nhất!

Không xếp hạng theo sự phù hợp, . . .

11

Thế hệ tiếp theo của quảng cáo trong tìm kiếm: Google (2000/2001)

Phân biệt rõ ràng kết quả tìm kiếm và quảng cáo

12

Hai danh sách xếp hạng: tài liệu phù hợp (trái) và quảng cáo (phải)

SogoTrade xuất hiện trong kết quả tìm kiếm

SogoTrade trong mục quảng cáo

Công cụ tìm kiếm có xếp hạng tài liệu được quảng cáo cao hơn tài liệu không quảng cáo?

Tất cả công cụ tìm kiếm lớn đều tuyên bố không.

13

Xếp hạng nội dung quảng cáo như thế nào?

14

Quảng cáo được xếp hạng như thế nào?

Nhà quảng cáo đặt giá cho từ khóa – đấu giá. Hệ thống mở: Bất kỳ ai cũng có thể tham gia đặt giá cho

từ khóa. Nhà quảng cáo chỉ phải trả tiền khi ai đó mở quảng cáo. Quảng cáo được xếp hạng như thế nào? Giá phải trả khi

người dùng mở quảng cáo được xác định như thế nào? Tương tự đấu giá với giá thứ hai Đây có thể là lĩnh vực nghiên cứu quan trọng bậc nhất đối với

máy tìm kiếm (computational advertising). Thu thêm một xu từ mỗi quảng cáo sẽ bổ xung hàng tỉ lợi nhuận

cho công cụ tìm kiếm.

15

Quảng cáo được xếp hạng như thế nào?

Nếu xếp hạng theo giá được trả như trong Goto Ý tưởng không tốt: truy vấn và quảng cáo có thể không ăn khớp về nội

dung Ví dụ: quảng cáo thuốc đau bụng khi tìm kiếm các món ngon?

Có thể xếp hạng dựa trên giá và sự phù hợp Thông số chính để đánh giá sự phù hợp là số lần mở liên kết

Số lần mở liên kết (CTR) Kết quả: Quảng cáo không phù hợp sẽ bị xếp hạng thấp hơn

Mong muốn: Sự hài lòng của người dùng và doanh thu của hệ thống sẽ là cực đại nếu người dùng luôn tìm được thông tin hữu ích.

Các tiêu chí xếp hạng khác: địa điểm, thời gian trong ngày, chất lượng và tốc độ tải trang web, v.v.

Tiêu chí xếp hạng chính: phù hợp với truy vấn

16

Đấu giá với giá thứ hai theo Google

bid: giá tối đa được trả cho một lần mở quảng cáo CTR: tỉ lệ bấm quảng cáo: (số lần bấm quảng cáo / số

lần hiển thị quảng cáo). CTR thể hiện sự phù hợp. Xếp hạng quảng cáo: bid × CTR: tổng hợp (i) giá

được trả (ii) mức độ phù hợp của quảng cáo rank: xếp hạng paid: giá thứ hai được trả bởi nhà quảng cáo

17

Đấu giá với giá thứ hai theo Google

Đấu giá với giá thứ hai: Nhà quảng cáo trả chi phí tối thiểu để duy trì vị trí của họ trong đấu giá và thêm 1 xu (0.01$).

price1 × CTR1 = bid2 × CTR2 (kết quả là rank1=rank2)

price1 = bid2 × CTR2 / CTR1

p1 = bid2 × CTR2/CTR1 = 3.00 × 0.03/0.06 = 1.50p2 = bid3 × CTR3/CTR2 = 1.00 × 0.08/0.03 = 2.67p3 = bid4 × CTR4/CTR3 = 4.00 × 0.01/0.08 = 0.50

18

Những từ khóa được định giá caoTheo http://www.cwire.org/highest-paying-search-terms/$69.1 mesothelioma treatment options$65.9 personal injury lawyer michigan$62.6 student loans consolidation$61.4 car accident attorney los angeles$59.4 online car insurance quotes$59.4 arizona dui lawyer$46.4 asbestos cancer$40.1 home equity line of credit$39.8 life insurance quotes$39.2 refinancing$38.7 equity line of credit$38.0 lasik eye surgery new york city$37.0 2nd mortgage$35.9 free car insurance quote

19

Quảng cáo trong tìm kiếm: ba bền đều có lợi?

Công cụ tìm kiêm thu lợi mỗi khi ai đó mở quảng cáo.

Người dùng chỉ mở quảng cáo nếu họ thực sự quan tâm. Công cụ tìm kiếm sẽ phạt những quảng cáo sai

lệch và không phù hợp. Kết quả là người dùng thường hài lòng với những

gì họ tìm thấy sau khi mở quảng cáo. Nhà quảng cáo tìm thấy những khách hàng

mới với chi phí tối thiểu.

20

Bằng cách nào có thể đánh lừa hệ thống?

21

Không phải cả ba bên đều có lợi: Đầu cơ từ khóa

Mua một từ khóa trên Google Sau đó chuyển hướng lưu lượng tới bên thứ ba

(đối tác trả giá cao hơn giá bạn phải trả Google) Ví dụ, chuyển tới một trang chứa rất nhiều quảng

cáo Ad spammers luôn phát minh nhiều sảo thuật

mới. Công cụ tìm kiếm cần thời gian để bắt kịp

22

Không phải cả ba bên đều có lợi: Sự vi phạm thương hiệu

Ví dụ: geico Một thời gian trong năm 2005: Từ khóa tìm

kiếm “geico” trên Google bị mua bởi những đối thủ. Geico đã thất bại trong trường hợp này ở Mỹ.

Louis Vuitton cũng đã gặp tình huống tương tự ở châu Âu.

Tham khảo http://google.com/tm complaint.html

23

Nội dung chính

Căn bản tìm kiếm trên Web Quảng cáo trong tìm kiếm Phát hiện trùng lặp (gần) Thu thập dữ liệu trên web

Bộ thu thập đơn giản Bộ thu thập trong thực tế

24

Phát hiện trùng lặp Trên Web có rất nhiều nội dung trùng lặp. Gấp nhiều lần so với những bộ dữ liệu khác Trùng lặp tuyệt đối

Dễ dàng loại bỏ ví dụ, sử dụng hàm băm

Trùng lặp gần Quá nhiều trên web Khó phát hiện

Người dùng cảm thấy phiền phức khi phải nhận những tài liệu (gần) giống nhau.

Một tài liệu dù rất phù hợp sẽ bị coi là không phù hợp nếu xuất hiện ngay bên dưới một kết quả trùng lặp.

Chúng ta cần loại bỏ những tài liệu trùng lặp (gần).

25

Ví dụ trùng lặp gần

26

Phát hiện trùng lặp gần

Tính độ tương đồng dựa trên “cú pháp” (thay vì ngữ nghĩa)

Tính độ tương đồng ngữ nghĩa là rất phức tạp Có thể coi những tài liệu có cùng nội dung nhưng

được diễn đạt với những từ khác nhau không phải trùng lặp.

Sử dụng ngưỡng θ để kết luận “trùng lặp (gần)”. Ví dụ, hai tài liệu được coi là trùng lặp gần nếu độ

tương đồng > θ = 80%.

27

Biểu diễn mỗi văn bản như một tập shingles

Một shingle đơn giản là một n-gram trên từ. Shingles được sử dụng như những tham số để đo độ tương

đồng cú pháp giữa các tài liệu. Ví dụ, với n = 3, “a rose is a rose is a rose” sẽ được biểu diễn

như tập các shingles sau: { a-rose-is, rose-is-a, is-a-rose }

Chúng ta có thể tham chiếu các shingles với các giá trị số trong khoảng 1..2m bằng tổng kiểm soát (fingerprint).

Từ đây: ký hiệu sk là tổng kiểm soát của shingle k trong khoảng 1..2m.

Chúng ta định nghĩa độ tương đồng của hai tài liệu là hệ số Jaccard của hai tập shingle.

28

Nhắc lại: Hệ số Jaccard

Thường được sử dụng để đo độ chồng lấn của hai tập hợp Cho A và B là hai tập hợp Hệ số Jaccard:

JACCARD(A,A) = 1 JACCARD(A,B) = 0 nếu A ∩ B = 0 A và B không nhất thiết có cùng kích thước. Luôn nhận một giá trị trong khoảng [0, 1]

29

Ví dụ hệ số Jaccard

Ba tài liệu:

d1: “Jack London traveled to Oakland”

d2: “Jack London traveled to the city of Oakland”

d3: “Jack traveled from Oakland to London”

Dựa trên những shingle với kích thước 2 (2-grams

hoặc bigrams), hãy tính hệ số Jaccard J(d1, d2) và J(d1,

d3)?

30

Ví dụ hệ số Jaccard

Ba tài liệu:

d1: “Jack London traveled to Oakland”

d2: “Jack London traveled to the city of Oakland”

d3: “Jack traveled from Oakland to London”

Dựa trên những shingle với kích thước 2 (2-grams hoặc

bigrams), hãy tính hệ số Jaccard J(d1, d2) và J(d1, d3)?

J(d1, d2) = 3/8 = 0.375

J(d1, d3) = 0

*Lưu ý: hệ số Jaccard rất nhạy cảm với trật tự từ

31

Biểu diễn mỗi văn bản như một sketch

Số lượng shingle trên tài liệu là rất lớn. Để tăng tốc độ tính toán chúng ta sẽ sử dụng sketch –

một tập con được lựa chọn khéo léo từ các shingles của văn bản.

Kích thước của một sketch là cố định, v.d., n = 200 . . . . . . và được định nghĩa bởi một tập hợp các thao tác trộn

π1 . . . π200. Sketch của d được định nghĩa là:

< mins ∈d π1(s),mins ∈d π2(s), . . . ,mins∈d π200(s) >

(một vec-tơ 200 số).

32

Phép trộn và giá trị cực tiểu: Ví dụ

tài liệu 1: {sk} tài liệu 2: {sk}

Chúng ta sử dụng mins∈d1 π(s) = mins∈d2 π(s) như một phép thử: liệu d1 và d2 có phải trùng lặp gần? Trong trường hợp này: hoán vị π khẳng định: d1 ≈ d2

33

Tính hệ số Jaccard cho sketches

Sketches: Bây giờ mỗi tài liệu là một vec-tơ với n = 200 số.

Sẽ dễ xử lý hơn so với không gian đa chiều của shingles

Nhưng chúng ta tính hệ số Jaccard bằng cách nào?

34

Tính hệ số Jaccard cho sketches (2)

Chúng ta tính hệ số Jaccard bằng cách nào?

Đặt U là hợp của tập các shingles của d1 và d2, còn I là giao Có |U|! phép trộn trên U Với s′ ∈ I , có bao nhiêu phép trộn π để

argmins∈d1 π(s) = s′ = argmins∈d2 π(s)? Trả lời: (|U| − 1)! Có (|U| − 1)! phép trộn cho mỗi s trong I ⇒ |I |(|U| − 1)! phép trộn thỏa mãn

argmins∈d1 π(s) = argmins∈d2 π(s) Như vậy, tỉ lệ phép trộn thỏa mãn

mins∈d1 π(s) = mins∈d2 π(s) là:

35

Ước lượng hệ số Jaccard

Tỉ lệ phép trộn thành công bằng hệ số Jaccard. Phép trộn π là thành công nếu mins ∈d1 π(s) = mins ∈d2 π(s)

Quá trình lấy ngẫu nhiên một tổ hợp và kết luận 1 (thành công) hoặc 0 (không thành công) là phép thử Bernoulli.

Ước lượng xác suất thành công: tỉ lệ thành công trong n phép thử Bernoulli. (n = 200)

sketch của chúng ta dựa trên sự lựa chọn ngẫu nhiên các hoán vị.

Như vậy, để tính hệ số Jaccard, đếm số lượng k hoán vị thành

công cho < d1, d2 > và chia cho n = 200.

k/n = k/200 được coi như J(d1, d2).

36

Cài đặt

Chúng ta sử dụng hàm băm như một phép trộn:hi : {1..2m} → {1..2m}

Xét tất cả shingles sk trong hợp của hai tập theo thứ tự bất kỳ

Với mỗi hàm băm hi và văn bản d1, d2, . . .: giữ chỗ cho giá trị cực tiểu đã được tìm thấy

Nếu hi (sk) nhỏ hơn cực tiểu đã được tìm thấy: cập nhật giá trị tương ứng

37

Ví dụ

sketches cuối cùng

38

Bài tập

39

Lời giải (1)

sketches cuối cùng

h(x) = 5x + 5 mod 4g(x) = (3x + 1) mod 4

40

Lời giải (2)

41

Tổng hợp về Shingling

Đầu vào: N tài liệu Lựa chọn kích thước n-gram cho shingling, ví dụ, n =

5 Sử dụng 200 phép trộn ngẫu nhiên (hàm băm) Tính N sketches: ma trân 200 × N theo dạng như

trong slide trước, mỗi phép trộn một dòng, mỗi văn bản một cột

Tính độ phù hợp theo cặp Kết luận trùng lăp gần với độ tương đồng > θ Chỉ đánh chỉ mục một tài liệu từ mỗi lớp tương đương

42

Phương pháp hiệu quả phát hiện trùng lặp gần

Phương pháp ước lượng hệ số Jaccard cho từng cặp tài liệu đơn lẻ đã xét là rất hiệu quả.

Nhưng chúng ta vẫn cần phải ước lượng O(N2) hệ số với N là số trang web.

Giải pháp 1: hàm băm cục bộ (LSH)Andoni, Alexandr, Mayur Datar, Nicole Immorlica, Piotr Indyk, and

Vahab Mirrokni. 2006. Locality-sensitive hashing using stable distributions. In Nearest Neighbor Methods in Learning and Vision: Theory and Practice. MIT Press. 314, 519, 522, 524,527

Giải pháp khác: sắp xếp (Henzinger 2006)Henzinger, Monika R., Allan Heydon, Michael Mitzenmacher, and

Marc Najork. 2000. On near-uniform URL sampling. In Proc. WWW, pp. 295–308. North-Holland. DOI: dx.doi.org/10.1016/S1389-1286(00)00055-4. 442, 524, 527, 528

43

Nội dung chính

Căn bản tìm kiếm trên Web Quảng cáo trong tìm kiếm Phát hiện trùng lặp (gần) Thu thập dữ liệu trên web

Bộ thu thập đơn giản Bộ thu thập trong thực tế

44

Thu gom dữ liệu khó tới đâu?

Máy tìm kiếm trên web phải tự động thu gom tài liệu.

Thu thập nội dung tài liệu là dễ dàng hơn trong nhiều hệ tìm kiếm khác. ví dụ, đánh chỉ mục tất cả tệp trên ổ đĩa cứng: chỉ

thực hiện duyệt đệ quy trên hệ thống tệp Nhưng đối với tìm kiếm trên web, cần nhiều

thời gian hơn để thu thập tài liệu Nhưng đó có thực sự là khó khăn chính đối với

thiết kế/xây dựng hệ thống?

45

Thao tác thu thập thông tin cơ bản

Khởi tạo hàng đợi với URLs của những trang mầm

Lặp Lấy URL từ hàng đợi Nạp và đọc trang web Tách URLs từ trang web Thêm URLs vào hàng đợi

Giả thuyết cơ bản: Web như đồ thị liên kết chặt chẽ.

46

Thảo luận: Điểm hạn chế của bộ thu thập này là gì?

urlqueue := (some carefully selected set of seed urls) while urlqueue is not empty: myurl := urlqueue.getlastanddelete() mypage := myurl.fetch() fetchedurls.add(myurl) newurls := mypage.extracturls() for myurl in newurls: if myurl not in fetchedurls and not in urlqueue: urlqueue.add(myurl) addtoinvertedindex(mypage)

47

Hạn chế của bộ thu thập đơn giản

Quy mô: chúng ta cần phân tán quá trình thu thập Chúng ta không thể đánh chỉ mục mọi thứ: cần lựa chọn một tập

con. Bằng cách nào?

Trùng lặp: cần tích hợp khả năng phát hiện trùng lặp Spam và bẫy thu thập: cần tích hợp chức năng phát hiện spam Sự lịch thiệp: chúng ta cần đặt thời gian nghỉ giữa những yêu cầu

gửi tới một trang, dù quá trình thu thập có thể kéo dài (nhiều giờ, nhiều ngày)

Tính cập nhật: chúng ta cần thu thập lại theo chu kỳ. Kích thước web rất lớn, chúng ta chỉ có thể thu gom lại thường xuyên

một tập nhỏ. Một lần nữa, vấn đề lựa chọn tập con hoặc ưu tiên

48

Quy mô của bài tóan thu thập

Nạp 20,000,000,000 trang mỗi tháng . . . . . . chúng ta cần nạp khoảng 8000 trang mỗi

giây! Thực tế: có thể cần nhiều hơn vì nhiều trang

chúng ta thu được sẽ trùng lặp, không tải được, spam v.v.

49

Bộ thu thập (Crawler) phải làm gì?

Bền vững Xử lý bẫy thu gom, trùng lặp, trang rất lớn, các trang sinh tự động v.v.

Lịch thiệp Không truy cập một trang quá thường xuyên Chỉ thu thập những nội dung được cho phép: robots.txt

50

Robots.txt

Giao thức hạn chế quyền truy cập của bộ thu gom (“robots”) trong một địa chỉ web, được thiết lập từ 1994

Ví dụ: User-agent: * Disallow: /yoursite/temp/ User-agent: searchengine Disallow: /

51

Ví dụ robots.txt (nih.gov)User-agent: PicoSearch/1.0Disallow: /news/information/knight/Disallow: /nidcd/...Disallow: /news/research_matters/secure/Disallow: /od/ocpl/wag/User-agent: *Disallow: /news/information/knight/Disallow: /nidcd/...Disallow: /news/research_matters/secure/Disallow: /od/ocpl/wag/Disallow: /ddir/Disallow: /sdminutes/

52

Khuyến cáo đối với bộ thu thập dữ liệu web

Thiết kế hệ thống phân tán Có thể mở rộng: cần hỗ trợ khả năng tăng tốc

độ thu thập bằng cách thêm nhiều máy Nạp những trang chất lượng cao trước Thao tác liên tục: thu thập phiên bản mới của

những trang đã được thu thập

53

Nội dung chính

Căn bản tìm kiếm trên Web Quảng cáo trong tìm kiếm Phát hiện trùng lặp (gần) Thu thập dữ liệu trên web

Bộ thu thập đơn giản Bộ thu thập trong thực tế

54

Đường biên URL

55

Đường biên URL

Đường biên URL là cấu trúc dữ liệu lưu trữ và quản lý URLs mà chúng ta đã thấy, nhưng chưa được thu thập.

Có thể bao gồm nhiều trang từ một máy chủ Chánh nạp tất cả cùng lúc

Cần sử dụng triệt để các phân luồng thu thập

56

Kiến trúc thu thập cơ bản

57

Chuẩn hóa URL

Có những URLs được trích rút từ một tài liệu là những URLs tương đối.

Ví dụ, trong http://mit.edu, địa chỉ aboutsite.html tương đương với: http://mit.edu/aboutsite.html

Trong quá trình đọc tài liệu, chúng ta phải chuẩn hóa (mở rộng) tất cả các địa chỉ URLs tương đối.

58

Nội dung đã xem

Với mỗi trang được nạp: kiểm tra liệu nội dung đã có trong chỉ mục

Kiểm tra dựa trên tổng kiểm soát hoặc shingles

Bỏ qua những tài liệu có nội dung đã được đánh chỉ mục

59

Thu gom phân tán

Chạy nhiều phân luồng thu thập, có thể thực hiện ở những nút khác nhau Có thể phân tán theo vị trí địa lý

Phân chia các máy chủ đang bị thu thập tới các nút khác nhau

60

Những trung tâm dữ liệu của Google (wazfaring. com)

61

Thu gom dữ liệu phân tán

62

Đường biên URL: Hai điểm cần lưu ý

Sự lịch thiệp: Không truy cập một máy chủ web quá thường xuyên Ví dụ, chèn một khoảng thời gian giữa hai yêu cầu

thành công được gửi đến cùng một máy chủ Tính cập nhật: Thu gom một vài trang (ví dụ,

trang tin tức) thường xuyên hơn những trang khác

Đây là vấn đề không dễ dàng: hàng đợi ưu tiên đơn giản sẽ không giải quyết được vấn đề này.

63

Đường biên URL của Mercator

64

Đường biên URL của Mercator

Luồng URLs đi tới hàng đợi để tải về phải đi qua hai hàng đợi: phía trước và phía sau.

65

Đường biên URL của Mercator

Luồng URLs đi tới hàng đợi để tải về phải đi qua hai hàng đợi: phía trước và phía sau.

Hàng đợi phía trước quản lý độ ưu tiên.

66

Đường biên URL của Mercator

Luồng URLs đi tới hàng đợi để tải về phải đi qua hai hàng đợi: phía trước và phía sau.

Hàng đợi phía trước quản lý độ ưu tiên.

Hàng đợi phía sau đảm bảo sự lịch thiệp.

67

Đường biên URL của Mercator

Luồng URLs đi tới hàng đợi để tải về phải đi qua hai hàng đợi: phía trước và phía sau.

Hàng đợi phía trước quản lý độ ưu tiên.

Hàng đợi phía sau đảm bảo sự lịch thiệp.

Các hàng đợi là FIFO.

68

Đường biên URL của Mercator: Hàng đợi phía trước

69

Đường biên URL của Mercator: Hàng đợi phía trước

Bộ ưu tiên gán cho mỗi URL một độ ưu tiên – số nguyên trong khoảng từ 1 đến F.

70

Đường biên URL của Mercator: Hàng đợi phía trước

Bộ ưu tiên gán cho mỗi URL một độ ưu tiên nguyên trong khoảng từ 1 đến F.

Sau đó thêm URL vào hàng đợi tương ứng

71

Đường biên URL của Mercator: Hàng đợi phía trước

Bộ ưu tiên gán cho mỗi URL một độ ưu tiên nguyên trong khoảng từ 1 đến F.

Sau đó thêm URL vào hàng đợi tương ứng

Giải thuật tham lam để gán độ ưu tiên: tốc độ cập nhật, PageRank v.v.

72

Đường biên URL của Mercator: Hàng đợi phía trước

Chọn từ hàng đợi phía trước được yêu cầu bởi hàng đợi sau

Lấy một hàng đợi phía trước và từ đó chọn URL kế tiếp: Theo vòng, ngẫu nhiên, hoặc phương pháp tối ưu hơn

Nhưng có sự ưu tiên đối với hàng đợi có mức ưu tiên cao

73

Đường biên URL của Mercator: Hàng đợi phía sau

74

Đường biên URL của Mercator: Hàng đợi phía sau

Nguyên tắc 1. Mỗi hàng đợi phía sau được đảm bảo khác rỗng cho tới khi kết thúc thu thập.

Nguyên tắc 2. Mỗi hàng đợi phía sau chỉ chứa những URL từ một máy chủ.

Duy trì một bảng tham chiếu các máy chủ tới các hàng đợi phía sau.

75

Đường biên URL của Mercator: Hàng đợi phía sau

Hệ thống còn lưu trong bộ nhớ heap một thời gian đợi cho mỗi hàng đợi phía sau

Thời gian đợi là thời gian te sớm nhất có thể gửi yêu cầu tới máy chủ tương ứng của hàng đợi phía sau.

Thời gian te sớm nhất được xác định thông qua đặc điểm thời gian của URL được xử lý cuối cùng

76

Đường biên URL của Mercator: Hàng đợi phía sau

Bộ thu thập giao tiếp với hàng đợi phía sau như thế nào? Lặp (i) lấy URL từ q hiện tại

ra khỏi bộ nhớ (q là một hàng đợi phía sau)

và (ii) nạp URL u vào đầu hàng đợi q

77

Đường biên URL của Mercator: Hàng đợi phía sau Nếu u là URL cuối cùng, và q

trở thành rỗng Lặp (i) lấy những URL u

từ hàng đợi phía trước và (ii) thêm u vào hàng đợi phía sau tương ứng của nó

Nếu u không có hàng đợi phía sau tương ứng, thì (i) tạo một hàng đợi mới (ii) đưa u vào đó và (iii) thiết lập thời gian đợi cho hàng đợi mới tạo.

78

Bẫy thu thập

Bẫy thu thập là các máy chủ cố tình sinh một thứ tự vô hạn các trang liên kết

Đối với những bẫy thu thập tinh vi rất khó có thể phân biệt những nội dung như thế với các trang web động.

Recommended