You are on page 1of 2

DANUTA DUSZEŃCZUK nr 130701 2011-01-15 17:38:28

Algorytmy wyszukiwania i sortowania oraz struktury danych


wykorzystywane w wyszukiwarkach internetowych
Poprzez wyszukiwanie i sortowanie rozumiemy sposób uporządkowania pewnej grupy
elementów względem zadanego kryterium. Większość ludzi nie zdaje sobie sprawy z tego, że
korzystając codziennie z komputera wykorzystują algorytmy sortowania. Przykładem może
być choćby użytkowanie systemu operacyjnego z GUI, gdy w jakimś folderze znajduje się
bardzo wiele plików/folderów. Zazwyczaj wybieramy wtedy opcję rozmieszczenia ikon np.
według nazwy/daty utworzenia/rozmiaru. Gdy przeglądamy np. notowania giełdowe w
internecie, najczęściej mamy możliwość ustawienia danych według pewnych kryteriów.
Możemy np. sprawdzić opłacalność pewnych akcji w przeciągu ostatnich 6 czy 12 miesięcy.
Klikając w odpowiednie miejsce i ustawiając dane w zadanej kolejności, wykorzystywany
algorytm sortowania.
W swojej pracy przedstawię algorytmy wyszukiwania i sortowania w wyszukiwarkach
internetowych, a także struktury danych wykorzystywane na przykładzie Google. Tematyka
działania wyszukiwarek jest mi bliska, interesuję się bowiem infobrokeringiem i narzędziami
wyszukiwania informacji. Poza tym, dziś każdy internauta korzysta z wyszukiwarek – trudno
wyobrazić sobie poruszanie się po zasobach sieci bez ich pomocy.
Możemy się spotkać z dwoma algorytmami wyszukiwania i sortowania – metodą
wektorową oraz binarno-hybrydową. W pierwszym modelu dla każdego dokumentu w
zbiorze A tworzony jest wektor podobieństwa V, pozwalający porównać go do innych
dokumentów – wektor podobieństwa jest konstruowany w momencie, gdy wyszukiwarka
otrzyma zapytanie od użytkownika. Długość tego wektora zależy od liczby słów w słowniku
S wyszukiwarki, zawierającym wszystkie wyrazy ze wszystkich dostępnych dokumentów
zbioru A. Miara typowości słowa dla danego dokumentu stanowi kryterium wyszukiwania;
jest ona iloczynem dwóch liczb o nazwie idf (inverted document frequency) oraz tf (term
frequency). Liczba tf(S,A) jest tym wyższa, im częściej wyraz występuje na stronie.
Natomiast idf(S) jest tym wyższe, im rzadziej wyraz występuje we wszystkich dokumentach
zbioru. Największą miarę typowości mają wyrazy, które często występują w danym
dokumencie, ale rzadko we wszystkich innych. W modelu wektorowym wszystkie obliczenia
związane z oceną typowości dokumentu są wykonywane podczas dodawania dokumentu do
zbioru, co ma zasadnicza wadę – wszelkie zmiany kryteriów oceny wyników wymagają
ponownego ściągnięcia wszystkich dokumentów i wyliczenia wektorów podobieństwa.
Lepszym algorytmem jest metoda binarno-hybrydowa. Wektory podobieństwa nie zawierają
miar tf*idf, tylko wartości zero-jedynkowe, wskazujące, czy dany wyraz znajduje się w
dokumencie. Pierwsza faza algorytmu wyszukuje po prostu te strony, które zawierają
wszystkie wyrazy, jakie występują w zapytaniu. W kolejnym kroku algorytmu strony
sortowane są według miary trafności, która uwzględnia następujące kryteria: czy słowa z
zapytania znajdują się obok siebie w dokumencie i w którym miejscu (w adresie, tytule,
nagłówkach, odnośnikach, akapitach itp.) oraz w jakim stopniu strona jest popularna (badanie
wskaźnika page-rank). Wyświetlane wyniki są kombinacją tych dwóch kryteriów, a na
szczycie listy umieszczone są strony o największej wartości tych wskaźników.
Agent wyszukiwarki (spider, crawler, robot) zapisuje informacje o przeszukiwanych
stronach w zasobach wyszukiwarki – bazie danych. W przypadku Google nosi ona nazwę
BigTable Datastore. Datasore jest olbrzymią, rozproszoną, posortowaną tablicą opartą na
GQL. BigTable to rozproszony system zarządzania bazą danych zaprojektowany z myślą o
ogromnych zbiorach informacji. Dane podzielone są na tablety (każdy po max. 100MB; po
przekroczeniu tego rozmiaru tablety dzielone są na mniejsze), które odpowiadają pewnym
przedziałom kluczy. Każdy tablet znajduje się w pamięci określonego serwera tabletów, które
wspólnie tworzą drzewo o wysokości 3. Dwa pierwsze poziomy przechowują metadane,
natomiast trzeci poziom przechowuje rzeczywistą zawartość tabeli.

Rys. 1. Schemat działania BigTable, źródło:


http://static.googleusercontent.com/external_content/untrusted_dlcp/labs.google.com/pl//papers/bigtable-osdi06.pdf

Lokalizacja korzenia drzewa tabletów przechowywana jest w pliku Chubby. Za


pierwszym razem klient musi przejść przez całe drzewo, by ustalić adres serwera
tabletów. Przy kolejnych użyciach bazy danych klient korzysta ze wcześniej
zapamiętanych danych.

You might also like