De basis componenten van
een zoekmachine
Om beter inzicht in het optimalisatie proces te verkrijgen
is het handig om te weten hoe een zoekmachine in het algemeen
in elkaar zit en wat voor functionele mogelijkheden een zoekmachine
heeft te bieden.
De basis van een zoekmachine bestaat uit een 4-tal componenten:
- Het spider proces. Dit proces zorgt ervoor dat we pagina's
worden opgehaald en dat de links op de pagina's worden gevolgd.
- Het indexeer proces. Dit proces zorgt voor de opgehaalde
pagina's worden gefilterd (verwijderen van de opmaak code)
en vervolgens de gegevens in de indexes / collecties verwerkt.
- De collecties / indexes. Hierin wordt de informatie opgeslagen
- De verschillende interfaces om de informatie uit de collecties
te kunnen halen.
1. De spider.
De spider wordt ook wel 'webcrawler' of 'robot' genoemd.
De spider haalt de benodigde informatie op (de feitelijke
webpagina’s) en start vanaf voorgedefinieerde start
punten (op het internet is dit meestal de root pagina oftewel
de homepage). Vervolgens worden de links die op de pagina
aanwezig zijn gevolgd. Dit proces noemt men het “spideren”
van een website door een zoekmachine.
Het “spider” proces zelf kan worden beperkt door
een zogenoemde configuratie definitie die de beheerder van
de zoekmachine kan instellen (op het internet gebeurd dit
meestal automatisch naar aanleiding van generieke configuratie
settings).
In een configuratie setting van een spider proces kan worden
aangegeven welke pagina's wel / niet mogen worden opgenomen
in de index (= beperking leggen op de bron). Tevens kan hier
worden aangegeven hoeveel pagina's per site mogen worden opgehaald
en hoe 'diep' een spider in een site mag gaan. Bij de zoekmachines
van internet speelt ook de time-out definitie een belangrijke
factor. Immers een spider is continue bezig met het (her)
indexeren van de aangemelde bronnen en vooral trage sites
kunnen dit proces ophouden.
Een spider haalt niet pagina voor pagina op maar kan een aantal
threads / verzoekentegelijkertijd naar de website toe sturen.
Zo kan een spider 10 of meer pagina's tegelijkertijd ophalen.
Dit kan gevolgen hebben op de belasting van de webserver of
het aantal licenties dat bijvoorbeeld voor een content management
systeem is afgesloten van concurrent gebruikers. Een aantal
keer hebben we meegemaakt dat bij het indexeren met 5 threads
(is weinig) we een foutmelding kregen dat het aantal licenties
werd overgeschreden om de database omgeving te benaderen.
Het terug schroeven van het aantal threads loste het probleem
op (immers we konden zelf de configuratie instellen), echter
op een internet omgeving kan dit leiden tot het feit dat je
site niet geindexeerd wordt.
De spider van de zoekmachine kan worden herkend door middel
van de user-agent naam van de spider en het bijbehorende ip-adres.
Zo kan je in je logs controleren of altavista of google is
langsgeweest en welke pagina's zijn opgenomen in de index
van desbetreffende zoekmachine. Zie voor een overzicht van
de spiders (= user-agents) de website van spiderhunter.com
In een intranet omgeving zal een spider meestal op een opgegeven
tijdstip starten. Zo kan je bijvoorbeeld nieuws bronnen om
de paar minuten nieuwe documenten laten toevoegen.
Daarnaast is er een groot verschil van een zoekmachine in
een intranet omgeving m.b.t. de instellingen wanneer een website
kan worden geherindexeerd. Vaak geschiedt het herindexeret
in een intranet omgeving elke dag zodat de zoekmachine altijd
up-to-date is. Zorg in dit geval ervoor dat de webserver logs
de user-agent entry van de zoekmachine niet opnemen in de
webserver log. Als een intranet website bijvoorbeeld uit 10.000
documenten bestaat en elke dag wordt geherindexeerd kan dit
leiden tot vele logfile regels....
2. Het indexeer proces
Dit proces zorgt ervoor dat de opgehaalde pagina's (= door
de spider) "klaar" worden gemaakt om toe te voegen
in de indexes / collecties. Dit "klaar" maken gaat
middels het toepassen van een 'filters' die de werkelijk inhoud
van de opmaak laag (bijvoorbeeld HTML / PDF) kan scheiden.
Alle bron types worden middels deze filters in woorden lijst
opgesplitst. Zo zijn er filters voor HTML, MS-office, PDF,
Postscript en nog vele andere bron types. Ook is het mogelijk
om alleen de zogenoemde properties van bepaalde bestands type
te laten indexeren zoals die van MP3. De zoekmachine herkent
het type bron en past vervolgens het filter toe om aan de
hand van de aangeleverde bron een woordenlijst te maken en
vervolgens toe te voegen aan de index. Middels filters worden
er ook nieuwe links gevonden in HTML documenten en in een
'pool' klaar gezet voor de spider zodat deze de nieuwe links
kan ophalen.
Ook herkennen deze filters vaak de META gegevens van bepaalde
document types. Zo kunnen bijvoorbeeld de document eigenschappen
van MS-office of PDF documenten zoals titel en auteur naar
de META tags velden in de index worden gemapt, gelijkwaardig
aan de HTML meta tags. Dit 'mappen' gaat vaak middels configuratie
bestanden. De meeste (goede) zoekmachines welke je binnen
een intranet omgeving wil implementeren kan je hiervoor configureren.
Daarnaast kan zo'n filter vaak ook een samenvatting van een
bron genereren. Het generen van een samenvatting gaat middels
bepaalde algorithmes waarbij o.a. kan worden aangegeven waar
de nadruk van de trefwoorden in het desbetreffende bron over
gaat. Bij sommige zoekmachines kan je aangeven hoe groot zo'n
samenvatting maximaal mag zijn. Bij de meeste internet zoekmachines
wordt er “per woord” de positie in de tekst opgeslagen
en de eventuele opmaak code. Denk hierbij dat een woord in
een a href, h1, alt tag etc.. kan staan (denk bijvoorbeeld
aan de image search van google / altavista).
3. De collecties / indexes
Het derde gedeelte is de index zelf. Een index wordt ook
wel een collectie genoemd. Elke bron welke de spider heeft
opgehaald en middels het indexeer proces is verwerkt in een
woordenlijst wordt in de collectie opgenomen. Een foutieve
veronderstelling is dat men vaak denkt men dat ook het fysieke
document in de collectie is opgenomen. Niets is minder waar!
Een bron wordt namelijk verwerkt in een woordenlijst en vervolgens
opgeslagen in de collectie. Een collectie kan simpel gesproken
worden vergeleken met een index van een gigantisch groot boek.
De woorden in de index linken vervolgens naar de orginele
bronnen waarmee de orginele bron kan worden terug gehaald.
Natuurlijk is het in de werkelijkheid een stuk complexer omdat
de algorithmes van zoekmachines een relatie hebben t.a.v.
de opslag. Zo zal een <h1> tag een zwaarder gewicht
hebben dan een <b> tag. Ook dit soort gegevens worden
opgeslagen. Naast de woorden lijst kan ook zogenoemde META
informatie van de bronnen worden opgeslagen, niet alleen de
zogenoemde META tags die een gebruiker zelf in de HTML head
kan aangeven maar ook eigenschappen van een document. Denk
hierbij aan aanmaak datum, bron type, URL etc.
Daarnaast is er een nieuwe generatie zoekmachines met mogelijkheden
voor zogenoemde 'adaptive search ranking'. Dit houdt o.a.
in wanneer een document veel wordt opgevraagd automatisch
een zwaarder gewicht krijgt in de zoekresultaten. Ook dit
soort gegevens worden in een collectie verwerkt.
Overigens is het niet zo dat een zoekmachine maar 1 collectie
op 1 lokatie heeft. Nieuwe technologie maakt het mogelijk
om decentraal collecties aan te maken op een intranet omgeving
(bijvoorbeeld 1 in Amerika en 1 in Europa). Middels een zogenoemde
'broker' kan een zoekvraag bij meerdere 'collecties' worden
uitgezet waarna de resultaten worden samengevoegd en aan de
eindgebruiker worden gepresenteerd. Hierbij is het ook mogelijk
dat collecties van andere zoekmachines (bijvoorbeeld altavista
op internet) worden geraadpleegd, in het zoekresultaat worden
verwerkt en wordt aangeboden aan de eindgebruiker.
4. De interfaces van een zoekmachine
Het vierde gedeelte van de zoekmachine zijn de interfaces,
zoals een zoek pagina waarmee de informatie kan worden ontrokken
uit de collecties. Vanuit de eindgebruiker perspectief is
dit het meest belangrijkst element. Zulke interfaces maken
het mogelijk om informatie te ontrekken uit miljoenen pagina's
op het internet en intranet omgevingen. Bij een interface
denkt men vaak aan een zoekpagina, echter denk eens aan de
volgende manieren om informatie uit een zoekmachine te ontrekken:
De informatie 'pull' technologie.
Met de informatie 'pull' techologie maakt men vooral gebruik
van de zoekpagina's (zoals de bekende zoek portals op internet
zoals altavista) om de informatie op te zoeken. Kenmerkend
voor de 'pull' technologie is dat de gebruiker een 'behoefte'
moet hebben voor informatie over een bepaald onderwerp alvorens
deze gebruikt maakt van een zoek machine om de informatie
op te gaan zoeken. Met andere worden het starten informatie
retrieval proces ligt bij de eindgebruiker zelf.
Informatie 'push' technologie.
Naast het gebruik van zoekpagina's om informatie te vinden,
kan informatie worden verkregen door zogenoemde 'agents'.
Deze 'agents' zoeken informatie op basis van voorgedefinieerde
vragen voor een gebruiker en de resultaten hiervan worden
op regelmatig basis naar de eigenaar van zo'n agent toegestuurd.
Kenmerk hiervan is dat de gebruiker alleen nieuwe / toegevoegde
informatie over een bepaald onderwerp krijgt toegestuurd zodra
de informatie in de collectie is toegevoegd. Deze manier van
informatie voorziening wordt ook wel een informatie 'push'
genoemd. De gebruiker krijgt 'automatisch' zoek resultaten
toegestuurd (bijvoorbeeld via e-mail, sms, wap). Kenmerk hierbij
is dat de gebruiker zelf geen actie hoeft te ondernemen en
naar de informatie op zoek moet gaan maar dat dit door de
agent wordt afgehandeld.
Het gedrag van de gebruiker (social networks)
Uiteindelijk zal het gedrag van de gebruiker de informatie
behoeft gaan invullen (met name op omvangrijke intranet omgevingen).
Klinkt in eerste instantie erg eng maar feitelijk hebben flink
wat Nederlanders zich al aan deze manier al min of meer overgeven,
hetzij in een ander perspectief. Ik denk hierbij vooral aan
het gebruik van de airmiles kaart en de bonus kaart van Albert
Hein. Zonder dat men het door heeft geeft men hier informatie
weg over het consument gedrag wat van onschatbare waarde is
voor bijvoorbeeld Albert Hein. Immers ze weten niet alleen
wat je als individu te besteden hebt en welke producten je
koopt maar ook wanneer je wat koopt. Als je hierbij een relatie
gaat trekken naar een intranet omgeving van een groot bedrijf
waarbij naar aanleiding van het gedrag van een gebruiker een
bepaald profiel onstaat wat deze o.a. nodig heeft qua informatie
en waarin deze een 'expert' is dan is dit van enorme waarde
voor een groot bedrijf. Hoe vaak werkt men niet langs elkaar
heen en weet men niet dat een collega in een andere afdeling
al eens eerder een soort gelijk project heeft gedaan?
Het profiel van een gebruiker zal ontstaan naar aanleiding
van zijn gedrag (=passief) maar kan door het toekennen van
scores aan ontrokken informatie aangescherpt worden (= actief).
Hierbij moet je denken aan een mogelijkheid dat een gebruiker
een opgevraagd document een score kan gegeven. Daarnaast zal
zijn profiel overeenkomsten tonen met andere profielen binnen
een organisatie en zullen automatisch documenten worden aanbevolen
die 'aanverwante' profielen hoog hebben gewaardeerd. Ook het
klik gedrag zal invloed hebben (= adaptive search ranking).
Hoe meer medewerkers deze zelfde documenten selecteren hoe
hoger deze zal eindigen in de zoekresultaten. Overigens wat
denk je van het idee om de mail boxen van medewerkers te gaan
indexeren, met als achterliggende gedachte dat het 'communicatie'
gedrag vaak ligt vastgelegd in de mailbox van de medewerker.
Hierdoor zal er nog een accurater profiel van die medewerker
ontstaan.
Even een concreet voorbeeld:
Een markting manager in een groot bedrijf wil direct 'bulk'
e-mail versturen maar weet niet hoe hij dit in zijn (grote)
organisatie moet regelen. In de traditionele manier wordt
hierbij kontakt opgenomen met de IT afdeling van het bedrijf
die vervolgens gaan uitzoeken wie hiervan kennis heeft. Vaak
kan dit dagen duren alvorens dit geregeld is. In het geval
dat het systeem profielen heeft aangemaakt naar aanleiding
van het getoonde actieve en passieve gedrag is een vraag aan
het zoeksysteem voldoende: "direct mail" of "bulk
e-mail". De markting manager krijgt dan niet alleen informatie
over dit onderwerp getoond maar kan in dit geval ook de experts
op het gebied te voorschijn halen waarmee hij vervolgens direct
kontakt kan opnemen. In dit geval kost het vinden van experts
die hem verder kunnen helpen slechts een paar minuten i.p.v.
een paar dagen in de oude situatie.
Hoewel het bovenstaande natuurlijk optimaal klinkt moet
de cultuur van de organisatie er wel aan toe zijn om social
networks te kunnen invoeren. Grotere organisatie kenmerken
zich momenteel door het intern doorbelasten van kosten en
afdelingen hebben vaak eigen budgetten en moeten voor hun
eigen inkomsten zorg dragen. Het dilemina wat nu kan optreden
is dat de experts binnen de organisatie wel bekend zijn, maar
dat deze ook hun produktieve uren moeten maken. In het bovenstaande
geval kan het leiden dat de expert vaak wordt lastig gevallen
met vragen op zijn expertise gebied, wat weer kan leiden tot
uitloop op projecten waarop deze werkzaam is en waardoor er
voor de afdeling minder inkomsten zijn. Voor het bedrijf zelf
positief maar voor de afdeling en de betrokken expert minder
(deze zal immers worden afgerekend op zijn produktiviteit).
|