Componenta secunda a unui motor de cautare, indexul (catalogul) este alcatuit dintr-o serie de baze de date stocate de un server (modul) de stocare, constituindu-se un deposit distribuit de date. Acest deposit va avea o capacitate considerabila, memorand documentele indexate returnate de robotul asociat motorului de cautare.

Modulul de stocare realizeaza diverse activitati, cele mai importante fiind:

  • Introducerea datelor noi privitoare la paginile parcurse de roboti;
  • Actualizarea continutului vechilor documente stocate;
  • Programarea diverselor cereri de accesare a informatiilor despre o serie de documente.

De cele mai multe ori aceste date sunt comprimate (Google foloseste biblioteca de compresie bzip).

Modulul de indexare si meta-date este responsabil cu extragerea meta-datelor din paginile colectate si cu indexarea atat a meta-datelor, cat si a documentelor HTML. Pentru indexarea continutului textual al documentelor, uzual vor fi luate in consideratie toate cuvintele, exceptand asa-numitele cuvinte stop (cu o lungime mai mica de trei caractere si desemnand prepozitii, conjunctii sau interjectii; de exemplu “a”, “the”, “in” din limba engleza). Unele motoare de cautare (e.g.:Google sau Lycos) vor contoriza si numarul de aparitii ale celor mai frecvente cuvinte dintr-o pagina Web si vor realiza indecsi suplimentari si/sau vor stabili categoria in care va fi incadrata acea pagina. O alta tehnica abordata este cea a indexarii semantice.

Extragerea meta-datelor variaza in functie de motorul de cautare. Cea mai populara tehnica este cea a indexarii documentelor pe baza cuvintelor cheie furnizate fie explicit de creatorul acestor documente, fie in urma unei catalogari automate realizate de un robot.

Anumite motoare de cautare (i.e. Altavista) permit inscrierea unei pagini in baza de date, solicitand introducerea unor cuvinte-cheie pe baza carora sa se efectueze operatiunea de indexare. Un utilizator poate apela la un serviciu de inregistrare automata la o suita de motoare de cautare.

Intrebarile care se pun in legatura cu maniera de indexare sunt:

  • Cat de relevante sunt activitatile de indexare automata?
  • Documentelor HTML pot fi atasate anumite atribute menite ale descrie continutul?

Raspunsul la ultima intrebare este dat de urmatoarele aspecte:

Standardul XHTML permite autorilor de pagini Web sa enumere cuvinte-cheie care descriu in modul cel mai adecvat continutul informational al documentelor, prin utilizarea in antet a marcatorului “meta”.

Nu toate motoarele de cautare iau in intregime in consideratie informatiile continute de tag-ul “meta”. Este cazul motoarelor Excite, Google si Northern Light care vor ignora constructia “meta name=”keywords”…, iar FAST, Google si Lycos nu vor lua in seama “meta name=”description”…”.

Descrierea inteligenta a resurselor poate fi realizata cel mai bine atasand paginile Web meta-date RDF (Resource Description Framework). Exista deja tehnici de generare automata a meta-datelor RDF care sa faciliteze descoperirea resurselor Web, pornind de la titluri, cuvinte cheie, descrieri, data crearii, numarul total de cuvinte dintr-un document etc. pentru descrierea resurselor Web poate fi folosit, de asemenea, standardul RSS (RDF Site Summary), specificatie bazata pe RDF.

Metode mai sofisticate includ sumarizari automate, utilizarea de sinonime ale cuvintelor cheie sau utilizarea unor termeni euristici. In activitatea de catalogare a informatiilor, de multe ori intervine ierarhizarea datelor in functie de subiectul pe care-l trateaza, aceasta clasificare conducand la aparitia serviciilor director (de genul Yahoo!), bazate pe generarea de ontologii. De asemenea,, pentru fiecare dintre document se calculeaza numarul de legaturi continute de acea pagina. Aceste valori sunt denumite tehnic hit-uri. Indecsii pot cuprinde indecsi text obisnuiti, dar si indecsi ai meta-datelor extrase.

Meta-datele si indecsii se stocheaza pe dispositive separate de la cele ale depozitului de date (de cele mai multe ori se utilizeaza un sistem de management al bazelor de date relationale).

Depozitul de documente indexate suporta trei moduri de acces:

  • Acces direct (random access) – se realizeaza pe baza identificatorului unic asociat fiecarei pagini indexate;
  • Acces bazat pe interogari (query-based access) – vor fi furnizate toate documentele care satisfac o anumita cerere. Cererea poate sa se refere la diverse atribute ale meta-datelor (e.g.:autor, titlu, locatie) sau continutul textual al paginilor ;
  • Acces flux de date (streaming access) – este folosit atunci cand din depozitul de date se extrage un grup de pagini pentru a fi trimis ca flux de date spre o anumita aplicatie( de exemplu, atunci cand se reindexeaza o serie de pagini).

In cadrul depozitului de date este de dorit sa se memoreze cea mai recenta versiune a paginilor traversate de robotii Web. Trebuiesc avute in vedere aspecte importante precum consistenta indecsilor si eliminarea paginilor vechi/ inexistente pe Web. Astfel, corespunzator fiecarei pagini pot fi atasate doua valori numerice pentru a specifica timpul de viata permis si respectiv pentru a contoriza acest timp. Timpul de viata permis reprezinta perioada de stocare a unui document fara a necesita actualizarea ori stergerea sa din depozit. Contorul este decrementat periodic pana cand devine nul, caz in care robotul Web va trebui sa proceseze noi informatii referitoare la acea pagina. Desigur, fiecare motor de cautare va adopta propria maniera de stabilire a timpului de viata. De asemenea, robotii Web pot avea proprii lor parametri pentru realizarea acestei actualizari regulate, tinand cont de diverse ratiuni, cum ar fi cele legate de congestia retelelor.

Pentru asigurarea scalabilitatii, depozitul de date poate fi unul distribuit, constituindu-se in acest scop o colectie de noduri de stocare , interconectate, controlul realizandu-se prin intermediul unui server de management al nodurilor. Acest server mentine o tabela cu starea fiecarui nod de stocare: capacitatea totala de memorare, spatiul liber, nivelul fragmentarii datelor, numarul si tipul accesarii, modul de operare a nodului etc. pentru sporirea eficientei, nodurile pot contine pagini grupate pe diverse criterii (cuvinte-cheie, tematica, localizare etc.).

Mecanismul de cautare si evaluare

A treia componenta a unui motor este reprezentata de mecanismul de cautare si de evaluare a paginilor Web furnizate utilizatorului in urma cererii acestuia, formulate prin intermediul unei interfete puse la dispozitie de motorul de cautare.

Interfata de cautare (denumita frecvent motor de interogare) este o componenta importanta a sistemului, oferind, in functie de motor, posibilitati de formulare a cererilor prin intermediul diversilor operatori logici, in limbaj natural, explorand ierarhii de domenii catalogate (directoare Web), stabilind localizarea paginilor etc.

Majoritatea motoarelor de cautare utilizeaza o conventie de compunere a interogarilor. Pot fi introduse si relatii desemnate prin intermediul oAND, OR, NOT si NEAR.

Iata o descriere succinta a fiecaruia dintre acesti operatori:

  • termen1 AND termen2 – se foloseste atunci cand dorim ca paginile returnate de motor sa aiba in componenta ambii termini. De multe ori, semnul plus (caracterul “+”) prefixand fiecare termen inlocuieste functia lui AND: + termen1 +termen2;
  • termen1 OR termen2 – il vom folosi in situatia cand dorim ca paginile cautate sa contina macar unul dintre cei doi termini specificati;
  • NOT termen – daca vrem ca paginile sa nu includa termenul specificat vom utiliza acest operator (o constructie echivalenta este – termen);
  • termen1 NEAR termen2 – vom specifica acest operator pentru situatiile in care dorim ca paginile cautate sa contina doi termini localizati la mica departare unul de celalat (vecinatate de 20-200 de cuvinte, in functie de serviciul de cautare ales).

Pentru gruparea si schimbarea precedentei operatorilor se pot utiliza parantezele “( )”. Se mai poate folosi si constructia “lista de termini”, ghilimelele insemnand faptul ca se va realiza o cautare exacta a secventei de termini din lista data. De exemplu:

  • “Proiectare Web”+sfaturi – utilizare
  • De asemenea, se ofera si posibilitatea de a cauta in titlurile paginilor Web, prin intermediul unei constructii de forma:
  • title: sir cautat
  • De exemplu, pentru a cauta “XML” in titlurile paginilor, vom putea scrie:
  • title: XML

O alta facilitate este aceea de a gasi toate paginile care include ancore catre o adresa specificata, prin folosirea cuvantului-cheie link.

In mod obisnuit, ne vom sluji foarte rar de toate aceste facilitati puse la dispozitie, preferand formularea unei interogari compuse dintr-un singur cuvant sau a unei propozitii in limbaj natural. Tehnologia Ask Jeeves incorporata de Altavista este utilizata pentru procesarea cererilor formulate in limbaj natural (in speta, in limba engleza), problemele care trebuie sa fie rezolvate fiind cele legate de eliminarea caracterului ambigu termenilor, eliminarea cuvintelor nerelevante sau expandarea interogarii (de exemplu, pot fi automat formulate noi cereri continand sinonime ale cuvintelor furnizate de utilizator).

De asemenea, majoritatea motoarelor ofera posibilitatea de rafinare (refine) a interogarii sau de specificare a unor cereri avansate de cautare (advanced search).

Procesul de evaluare a interogarii specificate de utilizator poate fi derulat conform urmatoarelor etape:

  • Analizarea cererii formulate de utilizator;
  • Cautarea in indecsii corespunzatori termenilor ramasi dupa analiza cererii;
  • Scanarea tuturor documentelor care intrunesc intregul set de conditii de cautare
  • Evaluarea gradului de relevanta a fiecarei pagini in functie de cererea formulata;
  • Eliminarea duplicatelor si sortarea in ordinea relevantei;
  • Afisarea adreselor celor mai relevante N documente (eventual furnizandu-se si alte informatii, precum lungimea documentului, formatului, limba, contextual aparitiei etc.).

Nu toate motoarele de cautare urmeaza toate fazele descrise mai sus. Unele dintre ele nu realizeaza decat partial sau chiar deloc eliminarea duplicatelor (e.g.: Excite sau Lycos).

Alte motoare vor afisa paginile gasite grupate pe termeni sau vor oferi legaturi catre alte documente stocate pe acelasi server Web.

Sistemul de evaluare depinde de motorul de cautare ales. De exemplu, in cazul lui Google, sunt mentinute mai multe meta-date despre documentele indexate decat la alte motoare, ceea ce conduce la o precizie ridicata. Sunt memorate chiar si pozitia in cadrul documentului, tipul de font si modul de scriere ale informatiilor. In plus, rezultatele obtinute in urma fiecarei interogari emise de utilizator sunt salvate temporar, putand fi folosite la evaluarea unor cereri similar viitoare.

Trebuie retinut insa faptul ca nici un motor nu poate fi perfect, serviciile de cautare oferite neputand avea o acuratete de 100%. Pentru testarea serviciilor de cautare se iau in consideratie mai mult factori, dintre care pot fi amintiti: acuratetea, posibilitatea de cautare avansata, ergonomia in utilizare, precum si acordarea de alte facilitate.

Meta-cautatoarele

Pentru a formula interogari si a primi rezultate de la o multitudine de motoare de cautare, utilizatorii au posibilitatea de a apela la serviciile oferite de un meta-cautator. Functia principala a acestuia este cea de a compila toate listele de pagini obtinute de la motoarele obisnuite (interogate eventual in maniera paralela) si de a prezenta utilizatorului cele mai relevante documente gasite. Deseori, un meta-cautator are implementat priopriul sistem de evaluare a relevantei paginilor, in functie de anumite criterii proprii sau formulate de utilizator.

De asemenea, un meta-cautator poate oferi o vedere ierarhizata a paginilor gasite, de genul structurii de directoare Web (ierarhii de termeni) pe care acestea le formeaza.

Nu toate meta-cautatoarele elimina duplicatele, un exemplu in acest sens este Dogpile.

O serie de meta-cautatoare sunt directionate spre domenii specifici, folosind bazele de date furnizate de unul sau mai multe motoare de cautare de succes. Prin astfel de meta-cautatoare, putem avea acces la diverse servicii specializate, dintre care le mentionam pe cele de cautare a :

  • fisierelor – reprezentand in general aplicatii si documentatii, disponibile via serverele FTP;
  • adreselor de e-mail si a numerelor de telefon;
  • informatiilor in cadrul grupurilor de discutii;
  • paginilor localizate intr-un areal geographic comun.

O parte dintre serviciile de cautare specializate (e.g.:cautarea de continut multimedia sau de articole ale grupurilor de stiri) se regasesc si in cadrul motoarelor clasice (e.g.: la Altavista sau Google).

Dispecerul de cereri poate diviza interogarile complexe date de utilizator in subcereri, fiecare sub-cerere fiind expediata unui motor de cautare clasic. Nu toate meta-motoarele de cautare trimit in maniera concurenta cereri motoarelor de cautare.

Monitorul de performanta supraveheaza starea fiecarui motor de cautare. Atunci cand unul dintre motoare devine neoperational sau inaccesibil din ratiuni legate de retea, se poate decide in mod automat ca respectiva cerere sa fie data spre prelucrare altui motor. De asemnea, monitorul de performanta are ca misiune si primirea listelor de adrese ale paginilor gasite.

Modulul responsabil de interfata cu utilizatorul va furniza un formular electronic pentru a fi completat cu interogarea dorita. Dupa primirea rezultatelor de la motoarele de cautare, listele cu URI-uri vor fi compilate, eliminandu-se informatiile redundante si cele contradictorii. Deoarece fiecare motor de cautare va returna o lista de pagini intr-un format propriu, meta-motorul de cautare va realiza si o convertire la un format comun care va fi prezentat clientului.