|
|
Articol referitor la optimizarea paginilor web, optimizare site pentru motoarele de cautare - SEO Romania.
 Cum functioneaza Google? (partea 2)A doua parte continua explicarea modului de
functionare a acestui motor de cautare (indexare, cautare, mod de functionare), iar la sfarsit sunt prezentate
niste concluzii despre ce va face pe viitor Google, principalul motor de cautare din lume.
4.4 Indexarea Web-ului
— Analiza: orice sistem de analizare care este destinat sa ruleze pe intreg Web-ul trebuie sa faca fata unei mari cantitati de erori posibile. Acestea se pot intinde de la mici greseli in sintagmele HTML pana la kilobiti de zerouri in mijlocul unei sintagme, caractere non-ASCII, sintagme HTML depozitate in interior si o mare varietate de alte greseli care pot provoca imaginatia oricui pentru a-l determina sa apara cu altele noi. Pentru viteza maxima, in loc sa folosim YACC pentru a genera un sistem CFG de analiza, folosim un cablu electric pentru initierea unui analizator lexical which pe care il dotam cu propria informatie. Dezvoltarea acestui sistem de analiza care ruleaza cu o viteza rezonabila si care este foarte solid a insemnat un timp indelungat de munca continua.
— Indexarea documentelor in categorii: dupa ce fiecare document este analizat, este codificat intr-o serie de categorii. Fiecare cuvant este convertit intr-un wordID utilizand un continut de tip in-memory - lexiconul. Adaugirile care se fac continutului lexiconului sunt consemnate intr-un fisier. Din momentul in care cuvintele sunt convertite in wordID-uri, aparitiile lor in documentul curent sunt traduse in liste de hit-uri si sunt scrise in categoriile primare. Principala dificultate cu simultaneitatea fazei de indexare este aceea ca lexiconul trebuie impartit. In loc de impartirea lexiconului, am considerat indicat sa scriem un logaritm pentru toate cuvintele auxiliare care nu se aflau in lexiconul de baza, pe care l-am fixat la 14 milioane de cuvinte. In acest fel, indexer-ele multiple pot rula in paralel si apoi fisierul jurnal cu logaritmii cuvintelor auxiliare poate fi procesat de un singur indexer final.
— Sortarea: pentru a putea genera indexul complementar, sorter-ul preia fiecare categorie primara si o sorteaza dupa wordID pentru a produce o categorie complementara pentru titlu si hit-urile de tip anchor si o categorie complementara de text integral. Acest proces se intampla cu fiecare categorie in parte, necesitand astfel un spatiu mic de stocare temporara. De asemenea, comparam faza de sortare pentru a utiliza cat mai multe sisteme posibile prin simpla rulare de sorter-e multiple, care pot procesa categorii diferite in acelasi timp. Din moment ce categoriile nu sunt compatibile cu memoria principala, sorter-ul le subdivide mai departe in subcategorii care se potrivesc cu memoria bazata pe word ID si docID. Apoi, sorter-ul incarca fiecare subcategorie in memorie, o sorteaza si ii transcrie continutul in categorii complementare mici si in categorii complementare detaliate.O alta caracteristica importanta o reprezinta ordinea in care docID-urile trebuie sa apara in lista. O solutie simpla este sa le stocam in functie de docID. Acest lucru permite fuzionarea rapida a diferitelor liste pentru intrebarile cu multe cuvinte. O alta posibilitate este sa le stocam in functie de aparitia cuvantului in fiecare document. Acest lucru implica lipsa de valoare a raspunsurilor la intrebarile alcatuite dintr-un singur cuvant si face posibil faptul ca raspunsurile la intrebarile cu multe cuvinte sa se afle chiar la inceput. Totusi, fuzionarea este cu mult mai dificila. De asemenea, acest lucru face ca dezvoltarea sa devina mult mai dificila, in sensul ca o schimbare in functia de ordonare necesita o reconstruire a indexului. Am ales sa facem un compromis intre aceste optiuni, prin pastrarea a doua serii de categorii complementare - o serie pentru listele de hit-uri care include titlul sau link-ul si o alta serie pentru toate listele de hit-uri. In acest fel, verificam primul set de categorii si daca nu gasim destule potriviri in cadrul acestora le verificam si pe cele mai mari.
Rularea unui crawler web reprezinta o provocare. Exista actiuni riscante si subiecte sigure si, mult mai important, exista subiecte sociale. Parcurgerea (crawling) reprezinta cea mai fragila aplicatie din moment ce implica interactiunea cu sute de mii de servere web si nume de servere diverse care se afla dincolo de posibilitatea de control a sistemului.
Pentru a pacurge sute de milioane de pagini web, Google are un sistem rapid (fast distributed crawling). Un singur server URL ofera liste de URL-uri unui numar de crawlers (in general folosim in jur de 3). Atat server-ul URL, cat si crawler-ele sunt realizate in Python. Fiecare crawler tine in jur de 300 de conexiuni (connections) deschise simultan. Acest lucru este necesar pentru regasirea paginilor web la o viteza suficient de rapida. La viteze mari sistemul poate sa parcurga peste 100 de pagini pe secunda utilizand 4 crawlere. Acesta se ridica la aproximativ 600K de date pe secunda. O actiune importanta este reprezentata de verificarea DNS. Fiecare crawler mentine un cache DNS propriu, astfel ca nu este nevoie sa se faca un control DNS inainte de parcurgerea fiecarui document. Fiecare dintre sutele de conexiuni se poate afla in stadii diverse: verificarea DNS, conectarea la gazda, transmiterea solicitarilor si primirea raspunsurilor. Acesti factori fac din crawler o componenta complexa a sistemului. Acesta foloseste IO asincron pentru a face fata solicitarilor si un numar de secvente pentru mutarea preluarilor de pagini din sectiune in sectiune.
Se adevereste astfel ca rularea unui crawler care se conecteaza la mai mult de jumatate de milion de servere si care genereaza zeci de milioane de fisiere jurnal implica o cantitate considerabila de e-mailuri si apeluri telefonice. Datorita numarului mare de persoane care sunt online, exista intotdeauna aceia care nu stiu ce este un crawler deoarece acesta este primul pe care il vad. Aproape in fiecare zi primim un mesaj de genul ‘V-ati uitat la foarte multe pagini din site-ul meu. Ce parere aveti despre el?'. Exista de asemenea unele persoane care nu au aflat de existenta protocolului de excluziune la roboti si se considera ca pagina lor ar trebui protejata impotriva unei indexari de genul ‘Aceasta pagina este protejata si nu va fi indexata', care este dificil de inteles de crawler-ele web. De asemenea, din cauza cantitatii uriase de date implicate, lucruri neasteptate se pot intampla. De exemplu, sistemul nostru a incercat sa parcurga un joc online. Rezultatul a constat intr-o multime de mesaje iritante chiar in mijlocul jocului. Se pare ca aceasta a fost o problema usor de rezolvat. Dar aceasta problema nu aparuse pana in momentul in care am descarcat zeci de milioane de pagini. Datorita variatiei ridicate in paginile web si in servere, este practic imposibil sa testezi un crawler fara sa-l rulezi pe o parte considerabila a Internetului. Invariabil, apar sute de probleme obscure care se pot ivi pe o singura pagina din tot web-ul si pot cauza distrugerea crawler-ului sau mai rau, poate cauza o reactie imprevizibila sau incorecta. Sistemele care acceseaza parti mari din Internet trebuie sa fie foarte solide si testate cu multa atentie. Din moment ce sistemele complexe cum sunt crawler-ele vor duce in mod invariabil la aparitia problemelor, trebuie sa existe resurse semnificative dedicate citirii de e-mail-uri si rezolvarii problemelor din momentul in care acestea apar.
4.5 Cautarea
Scopul cautarii este acela de a oferi rezultate concludente in timp util. Multe dintre motoarele de cautare comerciale par sa fi facut progrese considerabile din punct de vedere al eficientei. De aceea, ne concentram mai mult pe calitate in cercetarea noastra, desi suntem de parere ca solutiile noastre se afla, cu putin mai mult efort, in progresie cu volumele comerciale. Procesul de evaluare al unei interogari Google este indicat de Figura 4.
Pentru marcarea unei limite a timpului de raspuns, odata ce un anumit numar de documente care se potrivesc cu interogarea (40.000 de obicei) este gasit, cel care a initiat cautarea poate merge direct la punctul 8 din Figura 4. Aceasta inseamna ca este posibil ca rezultate neconcludente sa fie oferite in schimb. In prezent, investigam alte metode pentru rezolvarea acestei probleme. In trecut, am sortat hit-urile in concordanta cu PageRank, lucru care pare sa fi imbunatatit situatia.
4.5.1 Sistemul de clasificare
Google pastreaza mult mai multe informatii despre documentele web decat motoarele tipice de cautare. Fiecare lista de hit-uri include pozitia, fontul si informatii despre tipul de litera folosit. In plus, luam in calcul hit-urile dupa textul link-ului si PageRank-ul documentului. Combinarea tuturor acestor informatii intr-un singur rezultat este dificila. Am conceput functia de ordonare astfel incat nici un factor particular sa nu aiba o influenta prea mare. Sa luam mai intai cazul cel mai simplu - o interogare cu un singur cuvant.
Tabel – pag23 pdf
Pentru afisarea unui document folosind o interogare cu un singur cuvant, Google parcurge toate listele de hit-uri ale documentului pentru cuvantul respectiv. Google considera fiecare hit ca apartinand unuia dintre diversele tipuri (titlu, link, URL, fonturi mari si fonturi mici de text simplu etc.), fiecare dintre acestea avand grade diferite de importanta in functie de tipul din care face parte. Aceste grade de importanta formeaza un vector indexat in functie de tip. Google numara hit-urile fiecarui tip din lista de hit-uri. Apoi fiecare pozitie este reorganizata intr-un clasament in functie de importanta. Gradele de importanta cresc liniar in functie de primele pozitii, dar se reduc repede astfel incat este relevant numai un anume numar de aparitii. Noi preluam produsul scalar al vectorului de ponderi de aparitii impreuna cu vectorul de ponderi de tipuri pentru a calcula un scor IR al documentului. In final, scorul IR este combinat cu PageRank pentru a oferi un rezultat final al documentului.
Pentru o interogare alcatuita din mai multe cuvinte, situatia este si mai complicata. In acest caz, listele multiple de hit-uri trebuie parcurse simultan astfel incat hit-urile care sunt apropiate intr-un document sunt plasate pe pozitii superioare fata de cele care sunt departate unele de altele. Hit-urile din listele multiple sunt potrivite astfel incat hit-urile apropiate sunt puse impreuna. Pentru fiecare set de potriviri de hit-uri, se calculeaza o apropiere. Aceasta apropiere se bazeaza pe cat de departate sunt hit-urile in cadrul documentului (sau link-ului), dar este clasificata in 10 clase cu valori diferite, mergand de la o sintagma apropiata pana la ‘nu foarte aproape'. Se fac contorizari nu numai pentru fiecare tip de hit, dar si pentru fiecare tip si apropiere. Fiecare pereche de tip si apropiere are o pondere tip-apropiere. Contorizarile sunt clasificate in functie de ponderile de aparitii si noi preluam produsul scalar pentru ponderile de aparitii si ponderile de tip-apropiere pentru realizarea unui scor IR. Toate aceste numere si matrice pot fi afisate odata cu rezultatele cautarii folosind o metoda speciala de corectare. Toate aceste afisari sunt de foarte mare ajutor in dezvoltarea sistemului de ordonare.
4.5.2 Scurta recapitulare
Functia de ordonare are multi parametri precum ponderile de tip si ponderile tip-apropiere. Stabilirea valorilor exacte pentru acesti parametri tine de domeniul magiei. Pentru a face acest lucru, avem un mecanism de feedback al utilizatorului in cadrul motorului de cautare. Un utilizator increzator poate evalua optional toate rezultatele care ii sunt returnate. Acest feedback este salvat. Apoi, cand modificam functia de ordonare, putem observa impactul acestei schimbari asupra cautarilor anterioare care au fost ordonate. Desi departe de perfectiune, acest lucru ne face sa observam cum o schimbare in functia de ordonare poate afecta rezultatele cautarii.
5. Rezultate si mod de functionare
Cea mai importanta caracteristica a unui motor de cautare este calitatea rezultatelor cautarii. In timp ce o evaluare completa a utilizatorului se afla dincolo de scopul acestei lucrari, experienta noastra personala cu Google a dovedit ca este posibil sa se obtina rezultate mult mai bune pentru majoritatea cautarilor decat ale celor mai importante motoare comerciale de cautare. Ca un exemplu ce ilustreaza utilizarea PageRank, a textului link-ului si a aproximarii, Figura 5 indica rezultatele Google pentru o cautare procesata pe termenul ‘bill clinton'. Aceste rezultate evidentiaza cateva dintre trasaturile Google. Rezultatele sunt grupate de server. Acest lucru este de mare ajutor atunci cand examinam seturile de rezultate. O serie de rezultate sunt din domeniul whitehouse.gov, care reprezinta rezultatul asteptat pentru o cautare de acest gen. In mod obisnuit, majoritatea motoarelor de cautare comerciale nu ofera nici un rezultat din whitehouse.gov, cu atat mai putin pe cele corecte. Trebuie observat ca nici un titlu nu este afisat pentru primul rezultat, din cauza ca nu a fost parcurs. In schimb, Google s-a bazat pe textul link-ului pentru a hotari daca acesta era un raspuns potrivit pentru intrebare. In mod asemanator, al cincilea rezultat este o adresa de e-mail, care, bineinteles, nu poate fi parcursa (crawlable) si care este, de asemenea, un rezultat al textului link-ului.
Toate rezultatele sunt pagini cu un inalt nivel calitativ si, la o ultima verificare, nici una dintre ele nu este un link irelevant (broken). Acest lucru se intampla din cauza ca toate au un PageRank ridicat. PageRank-urile sunt marcate prin procentajele de culoare rosie. In concluzie, nu sunt rezultate despre un alt Bill in afara de Clinton sau despre un alt Clinton in afara de Bill si asta pentru ca acordam o importanta majora aproximarii sintagmelor in care apare un cuvant. Bineinteles ca un adevarat test al calitatii pentru un motor de cautare ar trebui sa implice si un studiu complet despre utilizator sau o analiza a rezultatelor pentru care noi nu avem loc in lucrarea de fata. In schimb, invitam cititorii sa incerce ei insisi Google la http://google.stanford.edu.
5.1 Parametri pentru stocare
In afara de calitatea cautarii, Google este proiectat sa masoare capacitatea Web-ului pe masura ce acesta se dezvolta. Un aspect al acestui fenomen il reprezinta modul eficient de stocare. Tabelul nr. 1 contine fragmente din cateva statistici si parametri de stocare ai Google. Datorita comprimarii, marimea totala a bibliotecii este de 53 GB, putin peste o treime din totalul de date pe care le contine. La preturile actuale ale discurilor biblioteca poate fi considerata o sursa ieftina de date. Ceea ce este mai important - totalul datelor folosite de motorul de cautare necesita un spatiu comparabil de stocare, adica in jur de 55 GB. Mai departe, un raspuns poate fi gasit pentru majoritatea interogarilor prin folosirea indexului complementar. Cu metode mai bune de codificare si de comprimare ale Document Index, un motor de cautare de calitate se poate incadra in 7 GB ai unui PC nou.
5.2 Modul de functionare a sistemului
Este important pentru un motor de cautare sa parcurga si sa indexeze eficient. Astfel, informatia poate fi permanent actualizata si modificarile majore aduse sistemului pot fi testate relativ repede. Pentru Google, operatiunile importante sunt Crawling (parcurgerea), Indexing (indexarea) si Sorting (sortarea). Este dificil de masurat cat a durat crawling-ul in total din cauza ca discurile au fost in intregime completate, numele serverelor nu mai sunt functionale sau din cauza oricarei probleme care putea determina oprirea sistemului. In total a durat cam 9 zile sa descarcam cele 26 milioane de pagini (inclusiv erorile). Totusi, din moment ce sistemul rula fluent si mai repede, am descarcat ultimele 11 milioane de pagini in doar 63 de ore, in medie 4 milioane de pagini pe zi sau 48,5 pagini pe secunda. Am rulat indexer si crawler simultan. Indexer a rulat mai repede decat crawler-ele. Aceasta s-a intamplat din cauza ca am petrecut destul timp pentru optimizarea indexer-ului astfel incat sa nu determine intarzierea dezvoltarii sistemului. Aceste optimizari au inclus o serie de updatari ale indexului documentului si plasarea structurilor precare de date pe un disc local. Indexer-ul ruleaza aproximativ 54 de pagini pe secunda. Sorter-ele pot fi rulate complet in paralel, utilizand 4 sisteme, intreg procesul de sortare durand in jur de 24 de ore.
5.3 Procesul de cautare
Imbunatatirea procesului de cautare nu a reprezentat punctul principal de interes al cercetarii noastre pana in acest moment. Versiunea curenta Google raspunde la cele mai multe din interogari intre 1 si 10 secunde. Acest interval este dominat in mare parte de IO-ul discului asupra NFS (din moment ce discurile sunt impartite pe sisteme diferite). Mai departe, Google nu are nici un fel de optimizare cum ar fi cache de cautari, subindici pe termeni comuni si alte optimizari obisnuite. Intentia noastra este de a mari considerabil viteza Google prin distributie si hardware, software si imbunatatiri algoritmice. Scopul nostru este acela de a putea raspunde la mai multe sute de interogari pe secunda. Tabelul nr. 2 contine cateva exemple de intervale de raspuns la interogari din versiunea curenta Google. Acestea sunt reluate pentru a reda performantele de viteza rezultate din cache-ul IO.
6. Concluzii
Google este proiectat sa fie un motor de cautare scalabil. Scopul principal este acela de a oferi rezultate de calitate pe fondul dezvoltarii rapide a World Wide Web. Google foloseste o serie de tehnici pentru ameliorarea calitatii cautarii incluzand page rank, textul link-ului si alte informatii apropiate. Mai departe, Google reprezinta o arhitectura completa pentru adunarea paginilor web, indexarea lor si efectuarea de interogari asupra lor.
6.1 Activitati viitoare
Un motor amplu de cautare este un sistem complex care ramane deschis completarilor. Scopurile noastre imediate sunt acelea de a imbunatati cautarea si de a afisa aproximativ 100 de milioane de pagini web. Cateva imbunatatiri simple aduse eficientei includ cache de interogari, alocare optimizata a discului si subindici. O alta sectiune care necesita o cercetare amanuntita este reprezentata de updatari. Trebuie sa avem algoritmi potriviti pentru a decide ce pagini mai vechi ar trebui reparcurse si ce pagini noi ar trebui parcurse. Munca in vederea atingerii acestui scop a fost facuta in [Cho 98]. O zona promitatoare de cercetare este aceea de a utiliza un cache proxy pentru construirea de baze de date cu scopul cautarii din moment ce acestea sunt influentate de cerere. Planuim sa adaugam trasaturi simple ce sunt suportate de motoarele comerciale de cautare cum ar fi operatorii de tip boolean, negatia si implicatia. Totusi, alte trasaturi cum ar fi feedback-ul relevantei si clustere (Google suporta in mod obisnuit clusterele bazate pe numele de domeniu) de-abia acum incep sa fie explorate. Intentionam de asemenea sa sustinem contextul de utilizator (cum ar fi locatia utilizatorului) si rezumarea rezultatelor. Ne preocupa si extinderea utilizarii structurii de link-uri si a textului link-ului. Experimentele simple indica faptul ca PageRank poate fi personalizat prin amplificarea ponderii homepage-ului unui utilizator sau a bookmark-urilor acestuia. In ceea ce priveste textul link-ului, experimentam utilizarea textului link-urilor invecinate alaturi de textul link-ului in sine. Un motor de cautare pe Web repezinta un mediu bogat pentru initiativele de cercetare.
6.2 Cautare la standarde inalte
Cea mai mare problema cu care se confrunta astazi utilizatorii de motoare de cautare o reprezinta calitatea rezultatelor pe care le primesc. Pe cand rezultatele sunt deseori amuzante si largesc orizontul utilizatorului, ele pot deveni si frustrante si pot consuma timp pretios. De exemplu, primul rezultat pentru o cautare ‘Bill Clinton' pe unul dintre cele mai populare motoare de cautare comerciale a fost Bill Clinton Joke of the Day: April 14, 1997. Google este destinat sa ofere rezultate de o calitate superioara astfel incat Web-ul sa continue sa se dezvolte rapid, iar informatia sa poata fi gasita usor. Pentru a putea realiza acest lucru, Google utilizeaza frecvent informatia hipertextuala ce consta din structura de link-uri si din textul link-urilor. Google foloseste de asemenea aproximarea si informatia despre fonturi. In timp ce evaluarea unui motor de cautare este dificila, noi am aflat in mod intuitiv ca Google returneaza rezultate la un inalt nivel calitativ spre deosebire de motoarele comerciale de cautare. Analizarea structurii de link-uri prin PageRank permite Google sa evalueze calitatea paginilor web. Utilizarea textului link-ului ca o descriere a ceea ce indica link-ul contribuie la relevanta si, intr-o anumita masura, la inaltul standard calitativ al rezultatelor. In cele din urma, utilizarea unor informatii asemanatoare ajuta la marirea gradului de relevanta al multor interogari.
6.3 Arhitectura scalabila
In afara de calitatea cautarii, Google este destinat sa masoare. Trebuie sa dea dovada de eficienta atat in spatiu, cat si in timp, iar factorii constanti sunt foarte importanti atunci cand vorbim de Web. Prin implementarea Google, am observat intarzieri in CPU, accesarea memoriei, capacitatea memoriei, cautarile pe disc, continutul discului, capacitatea discului si IO de retea. Google a evoluat pentru a depasi o serie din aceste probleme prin intermediul unor operatiuni variate. Structurile majore de date ale Google utilizeaza in mod eficient spatiul de stocare. Mai departe, operatiunile de parcurgere, indexare si sortare sunt suficient de eficiente pentru a construi un index al unei parti substantiale a Web-ului – 24 de milioane de pagini in mai putin de o saptamana. Intentionam sa devenim capabili de a construi un index de 100 de milioane de pagini in mai putin de o luna.
6.4 Un instrument de cercetare
In afara de a fi un motor de cautare de calitate, Google este si un instrument de cercetare. Datele pe care Google le-a adunat au dus la aparitia multor lucrari prezentate la conferinte si multe altele sunt deja in curs de aparitie. Un studiu recent cum ar fi [Abiteboul 97] a indicat un numar de limitari ale cautarilor despre Web care pot fi raspunse fara ca Web-ul sa fie disponibil pe plan local. Aceasta inseamna ca Google (sau un sistem similar) nu reprezinta numai un instrument valoros de cercetare, dar si unul necesar pentru o serie larga de aplicatii. Speram ca Google va deveni o resursa pentru cautatorii si cercetatorii din lumea intreaga si ca va impulsiona generatia urmatoare de motoare de cautare.
Autor: Sergey Brin, Larry Page
Sursa http://www.internet-magazin.ro
Opiniile vizitatorilor despre acest articol de optimizare web
| NUME | OPINIE ARTICOL DESPRE OPTIMIZARE WEB |
|---|
 | pisti | super bengos |  | misti | Super beton......acum sa-l citesc... |  | tot eu | Si unde sunt imaginile despre care se tot povesteste pe ici pe colo? |
In total sunt 3 opinii postate despre acest articol de optimizare web.
Alte articole despre optimizare pagini web (SEO)
|
|
|