published in Net - November 1996
© 1996 - Adriaan van Roeden - a3@n-vision.nl

Search engines

(dit is de originele versie van mijn artikel in het tijdschrift Net - November 1996)

Search engines zijn zo langzamerhand uitgegroeid tot een onmisbaar hulpmiddel bij het dagelijks internetgebruik. Het aantal Web pagina's is zo hard gegroeid dat zo'n service dan ook hard nodig is om nog binnen afzienbare tijd informatie te kunnen vinden op het net. Gelukkig staat de ontwikkeling van search engines niet stil en zijn er inmiddels meerdere engines die claimen het hele WWW te hebben geindexeerd. Ondanks de enorme omvang van de bestanden (tot 40GB) en het grote aantal queries per dag kunnen ze toch nog binnen een redelijk korte tijd een zoekopdracht uitvoeren en worden ze door steeds meer Internetters gebruikt.

Search engines zijn zo langzamerhand zelfs zo ingeburgerd geraakt dat ook bedrijven speciale Search engines beginnen te gebruiken om de gegevens binnen hun organisatie te ontsluiten en beschikbaar te stellen op hun interne bedrijfsnetwerk. Search engines zullen dus ook op de werkplek een steeds normaler verschijnsel worden. Gezien deze ontwikkelingen is het wellicht interessant eens te gaan kijken hoe een Search engine werkt. Daarnaast worden er een aantal grote engines beschreven en getest en wordt er gekeken naar engines die zich alleen op Nederland richten.

Hoe werkt een search engine?

Om deze vraag te beantwoorden is het nuttig om even na te gaan wat er gebeurt als je zo'n engine gebruikt - het zal dan duidelijk worden dat een search engine eigenlijk uit meerdere functionele delen bestaat. Het eerste onderdeel wat je tegenkomt is de user interface - deze maakt het mogelijk zoekopdrachten (queries) aan de engine te geven (zie voor meer informatie over zoeken het kader `zoeken in Altavista') en bepaalt het `gezicht' van de engine..
Zo'n query wordt ingevoerd met behulp van een `form', wat inhoudt dat zodra je op `search' klikt, de query wordt verstuurd naar de machine (server) waarop de engine draait. Op het WWW is er voor dit soort dingen een speciale interface bedacht, de zgn CGI (Common Gateway Interface) en via die CGI interface komt de query uiteindelijk terecht bij het tweede onderdeel van de engine, namelijk het programma wat het eigenlijke zoeken voor zijn rekening neemt.

Het derde onderdeel, de database van geindexeerde Web pagina's, wordt nu door het zoekprogramma doorzocht naar de woorden waaruit de query bestaat. Vervolgens wordt er dan ter plekke een HTML pagina gegenereerd waarop een overzicht staat van pagina's die in meer of mindere mate aan de query voldoen.
Het zijn deze drie onderdelen (interface, zoekprogramma en database) waarmee je als gebruiker direct te maken hebt en die samen met de gebruikte apparatuur en netwerkverbinding de snelheid van de engine bepalen.
Natuurlijk zijn we er daarmee nog niet, want die database (waarin niets meer of minder dan de inhoud van het hele WWW zit) komt er niet vanzelf - daarvoor zijn twee andere onderdelen van de engine nodig, namelijk een programma dat web pagina's opvraagt en een programma dat de inhoud van die pagina's indexeert.
Voor zo'n opvraag-programma zijn verschillende namen in omloop zoals `robot', `spider', `crawler' of `worm', wat ook terug te vinden is in de naam van enkele search engines (`world wide web worm', `Lycos' (is Latijn voor spin), `webcrawler', `hotbot', etc.). Al die namen hebben dan ook te maken met wat zo'n programma doet, namelijk het geautomatiseerd (`robot') afgaan (`spider', `worm', `crawler') van websites om daarvan alle beschikbare pagina's op te vragen en deze lokaal op te slaan. Omdat veel pagina's op het net ook links hebben naar andere pagina's is zo'n `robot' uiteindelijk in staat alle pagina's op het Web op te vragen door alle gelinkte pagina's te volgen en deze op hun beurt ook weer op te slaan. Het zal duidelijk zijn dat grote engines meerdere van die robots tegelijk op pad sturen om deze klus te kunnen klaren.

Als er uiteindelijk een grote verzameling pagina's van het net is gehaald, kan het laatste onderdeel van de search engine, het indexeerprogramma (indexer), in actie komen. De indexer moet elk woord in een pagina indexeren en opslaan in de eerder genoemde database. Hoe slimmer dit gebeurt des te nauwkeuriger (relevanter) zullen de gepresenteerde resultaten zijn die je krijgt na het versturen van je query. Ook is de structuur van de door de indexer gevulde database van invloed op de snelheid van de engine als geheel.

Omdat het web enorm hard groeit, moet een goede engine ervoor zorgen dat de database regelmatig wordt bijgewerkt - waardoor de grote engines op elk moment van de dag wel een paar `robots' op pad hebben die op zoek zijn naar nieuwe of gewijzige pagina's.

Hoewel er dus verschillende functioneles gedeelte binnen een search engine zijn te onderscheiden, combineren sommige kleinere engines verschillende functies binnen 1 programma en/of draait de hele engine op maar 1 machine.
Om het hele Web te kunnen indexeren is er echter heel wat meer nodig en daarom is het misschien interessant om eens op een rijtje te zetten wat de Altavista Search engine van Digital aan hardware nodig heeft om 30 miljoen pagina's en alle news groups te kunnen indexeren (met een snelheid van 1 GB per uur) en elke dag meer dan 12 miljoen queries af te handelen.

webservers:
3 Alphastations : 2 250 4/266 en 1 500/333 elk met 256 MB RAM en 1 4GB schijf

index/database servers:
3 Alphaserver 8400 5/300 met elk 10 CPU's, 6 GB RAM en 210 GB schijfruimte. Elke server heeft een eigen kopie van de Web index (40 GB)

'scooter' (Altavista's `robot')
1 DEC3000/900 AlphaStation met 1 GB RAM en 48 GB schijfruimte. 'Scooter' stuurt opgevraagde pagina's door naar een Alphaserver 4100 (2 CPU's, 1 GB RAM) om de index te genereren. De 4100 copieert de index weer naar de index servers.

news server:
1 Alphastation 400 4/333 met 160 MB RAM en 24 GB schijfruimte

news indexer:
1 Alphastation 250 4/266 met 196 MB RAM en 13 GB schijfruimte

Het zal duidelijk zijn dat men de belasting van de Altavista engine functioneel heeft verdeeld over een aantal machines om een zo snel mogelijke responstijd te kunnen bieden. In totaal worden er voor de Altavista search engine dan ook 10 zeer snelle machines gebruikt met daarin in totaal 21604 MB RAM en 727 GB schijfruimte. Wie een internationaal gerichte engine wil beginnen, mag dus wel een flinke bom duiten op zak hebben.

Hoewel de grote engines over niet geringe resources beschikken, komt het toch regelmatig voor dat pagina's niet worden gevonden. Daar zijn een aantal mogelijke oorzaken voor:

Waarom bepaalde pagina's niet of juist wel worden gevonden Soms is het zelfs voor een geavanceerde search engine als Altavista onmogelijk bepaalde pagina's te vinden:

Het komt ook voor dat er pagina's worden gevonden die niet meer bestaan of waarin de query helemaal niet in voorkomt/voor lijkt te komen:

Gezien het bovenstaande mag je van een engine dus geen wonderen verwachten, en moet je je altijd afvragen of je query wel goed genoeg is geformuleerd als de resultaten blijken tegen te vallen.


KADER

Zoeken in Altavista:

Voor dit artikel gebruiken we Altavista als voorbeeld. De meeste engines ondersteunen in grote lijnen de zoekmogelijkheden van Altavista, maar het is altijd handig om even de online documentatie te lezen.

Een query in Altavista bestaat uit een of meerdere woorden waarna gezocht moet worden. Geprobeerd wordt pages te vinden waar zoveel mogelijk van deze woorden in staan. Hoe vaker een query voorkomt in een pagina, des te hoger de 'relevance' van die pagina. Pagina's worden gepresenteerd op volgorde van relevance (`ranking' in het Engels). De `relevance' wordt meestal weergegeven door een getal naast de gevonden pagina; dit is de `score'.

Er zijn een aantal technieken waarmee je de query nauwkeuriger kunt bepalen: gebruik aanhalingstekens als je wilt zoeken naar een uitdrukking (een phrase); bijv. "internet providers" geeft aan dat deze twee woorden achter elkaar moeten staan in de page. Als je geen hoofdletters gebruikt zoekt Altavista 'case insensitive' en kunnen er dus wel of geen hoofletters in de query voorkomen

bijv. "internet providers" kan pagina's opleveren waarin 'Internet Providers', Internet providers', 'internet providers' of 'INTERNET PROVIDERS' staat.
Zodra je wel een hoofletter gebruikt wordt er 'case sensitive' gezocht en moet die hoofletter ook daadwerkelijk voorkomen in de query.
Met '+' en '-' kan je opgeven of een woord wel of juist niet in een pagina moet voorkomen bijv: +"internet providers" +nederland (internet providers in Nederland)
Gebruik '*' om een gedeelte van een woord te vinden, handig als je niet zeker weet hoe een woord of naam gespeld wordt. Voorwaarde is wel dat er tenminste drie letters voor de '*' moeten staan. Ook moet je er rekening mee houden dat '*' voor een maximum van vijf letters staat en dat een te groot aantal matches een ongeldig resultaat oplevert:
bijv: tennis* levert wel tennisveld op maar niet tennistoernooi en comp* levert gewoon teveel pagina's op.

Tenslotte kan je het zoeken (en dus het aantal gevonden pagina's) nog beperken door de volgende 'keywords' te gebruiken in een query:

In het algemeen geldt dus de zoekopdracht zo nauwkeurig mogelijk te formuleren zodat je zo min mogelijk pagina's moet opvragen om te kijken of ze inderdaad die informatie bevatten die je zoekt. Als je op zoek bent naar Internet providers kan je dus beter zoeken naar "internet providers' dan naar 'internet' - in het laatste geval bent je waarschijnlijk wel even bezig.. einde kader


Nu dan in grote lijnen is beschreven hoe een engine werkt is het tijd om er een paar te bezoeken en te `testen' - verwacht hier geen uitgebreide tests met 20 verschillende queries en tijdmetingen van de responstijden - deze tests zijn eerder bedoeld om te kijken hoe de engines werken en hoe ze van elkaar verschillen dan om te kunnen zeggen welke de beste is (hoewel de tests toch wel een indicatie geven zoals zal blijken). Een van de doelstellingen van deze tests was o.a. om te kijken hoe de Nederlandse search engines Zoek, Search en ILSE het ervan afbrachten ten opzichte van hun Amerikaanse concurrenten Altavista, Excite, Hotbot en Lycos (de vier grootste en meest gebruikte engines ter wereld). Er is gebruik gemaakt van drie queries: (in elke query moeten de woorden verplicht voorkomen)
`+bioscoopagenda +amsterdam' oftewel: wat draait er in de bios ?
"java garden" - de naam van een java applet gemaakt door schrijver dezes
`+gates +boek" - wat is er geschreven over ome Bills boek `the road ahead' ?

Vervolgens zijn er bij alle sites steekproeven gedaan naar een aantal pagina's die op deze manier werden gevonden of waarvan bekend was dat ze `voldeden' aan de query. Na een bepreking van elke Search engine komen de testresultaten aan bod.

Altavista

Altavista is sinds de lancering op 15 december 1995 snel een van de grootste en meest populaire engines geworden. Altavista is ontstaan n.a.v. de behoefte om een van de nieuwe mogelijkheden van Digitals Alphaserver, de 'Very Large Memory Database', te kunnen testen. Een search engine leek hiervoor zeer geschikt en nadat er eerst werd getest met het indexeren van e-mail en usenet news is de technologie uiteindelijk gebruikt voor om het Web te indexeren.

De responsetijd van Altavista is eigenlijk altijd goed, maar daar heeft men dan ook de nodige hardware voor bijeen gesleept. Verder heeft Altavista vrij uitgebreide zoekmogelijkheden en is tot nu toe verschoond gebleven van advertenties. Nu de technologie achter Altavista zich zo langzamerhand heeft bewezen is Digital hiermee de boer op gegaan en probeert deze onder de noemer 'Altavista Private Extensions' te verkopen aan bedrijven die hiermee de informatie op hun Intranets kunnen indexeren en ontsluiten. Ook interessant is de `home' versie hiervan ('Altavista Search my Computer Extensions') die eenieder kan downloaden en waarmee de bestanden op de eigen PC geindexeerd kunnen worden.

Excite

Bijzonder aggressief is Excite, een vrij recente search engine, die het met alle middelen opneemt tegen Altavista (`50 million web pages + intelligent concept extraction = twice the power of Altavista' wordt er van de home page geschreeuwd) en Yahoo (wat ze van de Netscape zoek-pagina wisten te verdringen). Excite is niet alleen een search engine, maar ook een `net directory' a la Yahoo en een nieuwsservice (met een feed van persbureau Reuter).. Het moet gezegd worden dat al het geschreeuw toch wel enige fundering heeft, want Excite heeft een aantal originele technieken in huis bij het zoeken naar informatie. Een daarvan is de zgn `concept search' waarmee getracht wordt dat te vinden wat je bedoelt ipv wat je als query intyped. Een andere techniek is de `Automatic Abstraction' - een samenvatting van de inhoud van een pagina, ipv alleen maar het eerste stuk tekst. Ook geinig is QBE `Query by Example' - door op de icons naast een gevonden link te klikken geef je aan dat je die link wilt gebruiken voor een nieuwe query. Zoek je bijv naar `California +music' dan kan je een link krijgen naar een pagina over Frank Zappa. Als je dan QBE loslaat op die link, zullen er daarna dus veel pagina's gevonden worden over Frank Zappa.

Erg handig is ook `group by site', waarmee je de gevonden pagina's kan groeperen naar de site waar ze op staan, dit is in veel gevallen een stuk overzichtelijker. Tenslotte is de mogelijkheid een eigen Excite homepage te maken ook een leuk idee.

Tijdens het schrijven van dit artikel ontdekte ik trouwens een aantal tegenstrijdige beweringen in de online propaganda (op de ene pagina hadden ze het bijvoorbeeld over 50 miljoen geindexeerde pagina's en op de andere over 11.5 miljoen) en stelde Excite hiervan op de hoogte, wat men gelukkig zeer wist te waarderen. Zoals wel vaker gebeurt in de automatisering had de documentatie een lagere prioriteit gekregen dan de op handen zijnde vernieuwingen. Per 30 Juli heeft Excite een geheel nieuwe `look' gekregen, wat nog een extra indicatie is van de moeite die ze doen om de `King of the Search engines' te worden.

Als je meer wilt weten over de techniek achter Excite dan is http://www.excite.com/ice/new.html heel interessant - hier komen ze o.a. met allerlei `bewijzen' voor hun claims dat ze de grootste en beste op het net zijn. En last but not least : webmasters zullen de mogelijkheid de Excite searchengine te kunnen downloaden voor gebruik op de eigen server zeker interessant vinden.

Hotbot

Hotbot (goeie naam wel) is een samenwerkingsverband van HotWired en Inktomi, een bedrijf dat de `NOW (network of Technology) parallel workstations' technologie heeft ontwikkeld. Deze technologie wordt dan ook gebruikt voor de Hotbot engine en schijnt zich bijzonder goed te lenen voor dit doel aangezien men zonder problemen workstations kan toevoegen als dit nodig is (gezien de groei van het net zullen dat flink wat workstations worden). In tegenstelling tot Altavista, en Excite kan er met Hotbot (nog) niet in newsgroups gezocht worden, maar is de user-interface wel een stuk gebruikersvriendelijker, want alle opties (ook de uitgebreide) kunnen worden ingesteld met pull-down menu's en checkboxes en maken het gebruik van ingewikkelde query languages overbodig. Hotbot blijkt ook nog het beste uit de in dit artikel beschreven tests te komen wat toch wel verrassend was.

Lycos

Lycos is de eerste grote internationale search engine, maar maakt de indruk een beetje ondergesneeuwd te zijn tussen het geweld van de concurrentie. De welhaast pathetische claims versterken deze indruk alleen maar. Zo hebben ze het erover dat ze groter zijn dan alle concurrenten bij elkaar (`more URLs than InfoSeek, Excite, Alta Vista and Yahoo combined') wat gezien het feit dat we met de claims van Altavista en Excite al op 80 miljoen pages komen (meer dan het totaal aantal pagina's op het net) nogal ongeloofwaardig klinkt. Grappig is dat Excite op zijn beurt weer claimt acht maalzo groot als Lycos te zijn. Al met al typisch Amerikaans gebral - in de strijd om de adverteerders doet men rare dingen, ook al is e.e.a. nogal doorzichtig.

Uit de uitgevoerde tests blijkt trouwens op geen enkele manier dat Lycos gelijk heeft - integendeel. Wel aardig is de samenwerking met Point (van de bekende web reviews) en de `A2Z net directory' waardoor ook Lycos meer is dan een search engine alleen.

Oranje boven ?

ILSE (Interactive Lowlands Search Engine)

ILSE is de eerste op Nederland gericht search engine en is ontwikkeld door Wiebe Weikamp, wat natuurlijk een lovenswaardige prestatie is. ILSE kent 670317 pages in Nederland, maar draait niet op een `dedicated' machine, hoewel ILSE in de praktijk vlot reageert.

SEARCH NL

Search is een recente engine die net als ILSE alleen op Nederland is gericht. Search is een samenwerkingsverband tussen XXlink internet services en Nexials systems die de software (NexTrieve) hebben ontwikkeld.

Search maakt gebruik van fuzzy zoektechnologie, waarmee het mogelijk wordt ook te zoeken naar woorden die op de woorden in de query lijken en dus anders gespeld kunnen zijn. `Handig' als je niet weet hoe een woord of naam precies wordt gespeld.

In de praktijk is deze `feature' nogal irritant, omdat je meestal echt wel weet hoe een woord wordt gespeld waar je naar op zoek bent. Maar dankzij de `fuzzy' technieken worden er dus altijd links gepresenteerd die echt helemaal nergens op slaan (wat moet ik met een pagina waar het woord satestokje in staat terwijl ik op zoek ben naar het boek van Bill Gates? - ik verzin het niet..). Het `fuzzy' zoeken zou dan ook een optie moeten zijn, hoewel de mate van `fuzzyness' wel via de advanced options in is te stellen. Helemaal `fuzzy loos' wordt een query echter nooit.

Wel handig is dat in de korte samenvatting van de pagina het gedeelte uit de pagina voorkomt waarin de woorden uit de query staan en dat deze highlighted zijn. Ook handig is de `preview' knop naast elke link die de lokale kopie van de gevonden pagina bij Search NL laat zien ipv de originele pagina, hetgeen behoorlijk in snelheid scheelt.

Zoek/Findit

Nog recenter is Zoek/Findit. Ook hier weer een op Nederland georienteerde engine, die helaas nog niet al te veel pagina's heeft geindexeerd. Deze hoeveelheid zal waarschijnlijk wel toenemen naarmate de service langer bestaat. Informatie is verder moeilijk te krijgen als de link naar de pagina `about.html' niet werkt. Ook zijn de zoekmogelijkheden nogal beperkt en wordt er geen score getoond naast een link.

Testresultaten

De eerste query `bioscoopagenda +amsterdam' leverde bij Hotbot en Excite de meeste hits op, Lycos kwam er slecht vanaf met maar 7 hits. Hotbot was de enige engine waar alle vijf referentie-pagina's werden gevonden. Vreemd dat Search niet eens de movie pagina van de `eigen' XXlink-site vindt.
query:                  `bioscoopagenda +amsterdam'

                         AV HB EX LY SE ZO IL
dhp uitgaan, film        *  *  *  x  x  x  x
telebyte bioscoopagenda  *  *  *  *  *  *  *
PI movie/agenda          x  *  x  x  x  x  x
filmmuseum linkpagina    x  *  x  x  x  x  x
XXlink movies            *  *  *  *  x  *  x

Query twee was de uitdrukking (phrase) "java garden", de Titel van een pagina die gewijd is aan een java applet. Een phrase moet als het even kan precies zoals ingevoerd in de pagina voorkomen, dus een zin als `Our house on java had a nice garden' levert dan niets op. De pagina is vrij recent op het net gezet en komt zeker voor in de Gamelan site (http://www.gamelan.com) en bij JARS (Java Applet Rating Service - http://www.jars.com - sinds 25/07). Weer is Hotbot de enige die zowel de originele pagina, de verwijzing ernaar toe vanuit Gamelan en de Engelse Java Garden pagina vindt (die trouwens niets met de applet te maken heeft). Lycos vind helemaal niets, Excite ook niet trouwens. Van de Nederlands engines vindt alleen ILSE een link, maar niet de pagina zelf. Geen enkele engine vindt de vrij recente verwijzing bij JARS. Als er dus alleen of bijna alleen vanuit een buitenlandse site naar een pagina in Nerderland wordt gelinkt, heb je in zo'n geval weinig aan een Nederlandse search engine.

query:                   "java garden"

                         AV HB EX LY SE ZO IL
java garden              *  *  x  x  x  x  x
gamelan                  *  *  x  x
java garden UK           x  *  x  x

Ook bij de query `+gates +boek' komt Lycos er weer slecht vanaf, maar vindt tenminste nog de recensie bij Planet Internet over het boek van Bill Gates, `the Road ahead'. Geen enkele buitenlandse engine vindt het artikel van Luc Sala over het boek, hoewel ze toch genoeg andere pagina's van de rest van de Net Info site hebben geindexeerd. Zoek vindt helemaal niets en ILSE springt eruit door naast de recensies bij Planet Internet en die in Modem Magazine ook die van Sala te vinden.

query:                   `gates +boek'

                         AV HB EX LY SE ZO IL           
Planet Internet          x  *  x  *  *  x  *  
Modem magazine           *  *  *  x  *  x  *
PC active                *  *  *  x  x  x  x
Net Info/sala            x  x  x  x  x  x  *

Conclusie

Het nut van een op Nederland gerichte engine is twijfelachtig - als men er al aan begint zo'n engine op te zetten, zou deze tenminste alle pagina's moeten vinden die de buitenlandse engines ook vinden en als het even kan meer. Maar dan nog zullen Nederlandstalige pagina's in Belgie niet worden gevonden, terwijl daar toch ook het een en ander op het Web is gezet. Tenslotte zijn de internationale engines in vergelijking snel genoeg en bieden ze vaak veel meer mogelijkheden dan de Nederlandse engines.

HotBot vond de meeste pagina's en is het meest gebruikersvriendelijk. Hoewel Excite wat minder nuttige links produceerde, is het toch een zeer interessante en complete Search engine vanwege de originele ideeen en de online directory en nieuws service.

Altavista bied vrij uitgebreide zoekmogelijkheden en een goede responsetijd. Bij de andere engines verscheen er af en toe wel eens een melding dat het systeem tijdelijk overbelast was, maar dit heb ik bij Altavista nog nooit gezien.

Lycos lijkt toch een beetje op z'n retour hoewel de online persberichten anders zouden doen vermoeden. Dat de beperkte test in dit artikel echter zo weinig links opleverde kan volgens mij geen toeval zijn.

Omdat een search engine zo langzamerhand een onmisbaar hulpmiddel is geworden bij de Internet navigatie, raad ik iedereen aan om zelf ook eens wat tijd te steken in de mogelijkheden van de verschillende engines. Lees de online informatie en voer zelf wat tests uit om te kijken welke engine het beste bevalt. Vergeet ook niet dat de engines regelmatig verbeterd worden en dat er ook steeds nieuwe bijkomen (hou Ultraseek in de gaten).

Adriaan van Roeden - a3@n-vision.nl - http://www.n-vison.nl/~a3/ --------------------------------------------

Search engine features

                         	AV HB EX LY
directory                	x  x  *  *
nieuws                   	x  x  *  *
meer dan 10 hits tegelijk 	x  *  x  *
advanced search          	*  *  *  *
zoeken in newsgroups      	*  x  *  x
personalised page        	x  x  *  x
geen advertenties        	*  x  x  x             
detail level instelbaar  	*  x  x  *
QBE                      	x  x  *  x
Automatic Abstracts      	x  x  *  x
sort by site              	x  x  *  x


URLs:

Zoek		http://www.zoek.nl
ILSE 		http://www.il.ft.hse.nl/ilse/
http://www.il.ft.hse.nl/ilse/stats.html
Search		http://www.search.nl

HotBot		http://www.hotbot.com
Altavista	http://altavista.digital.com
Excite		http://www.excite.com
		http://www.excite.com/ice/compare.html (engine vergelijking)
LYCOS		http://www.lycos.com
http://www.lycos.com/info/
Ultraseek	http://www.ultraseek.com

Point		http://www.pointcom.com