Spinnen houden niet op. Ze kruipen. Ze vinden nieuwe pagina’s, updaten oude pagina’s en maken de klus nooit af. Het web verandert te snel om voltooid te zijn. Maar zodra de gegevens zijn verzameld, begint het echte werk. De motor moet het opslaan. Het moet het doorzoekbaar maken.
Dit is niet zomaar tekst in een map dumpen. Hier zijn twee dingen van belang. Ten eerste: welke gegevens bewaart u? Ten tweede: hoe organiseer je het?
Waarom eenvoudige opslag mislukt
Stel je een zoekmachine voor die alleen een woord onthoudt en de URL waar het verscheen. Nutteloos. U krijgt hetzelfde resultaat voor ‘bank’ op een financiële site en ‘bank’ op een toerismepagina aan de rivieroever. Geen context. Geen ranglijst.
Een echte motor heeft meer nodig. Het volgt de frequentie. Er wordt geteld hoe vaak een term voorkomt. Er wordt naar positie gekeken. Woorden in de titel zijn belangrijker dan woorden in de voettekst. Woorden in links zijn belangrijk. Woorden in metatags zijn belangrijk. Elke factor krijgt een gewicht.
Deze weging is bedrijfseigen. Google gebruikt één formule. Bing gebruikt een andere. Daarom levert dezelfde zoekopdracht op verschillende platforms verschillende resultaten op. Er bestaat niet één ‘juiste’ volgorde van de resultaten. Er zijn alleen verschillende algoritmen die prioriteit geven aan verschillende signalen.
Verpakkingsgegevens strak
Opslagruimte kost geld. Ingenieurs comprimeren de gegevens. Het originele Google-whitepaper beschrijft het gebruik van slechts twee bytes (16 bits) om complexe metadata op te slaan voor een enkele woordhit.
In die 16 bits:
– 2 tot 3 bits kunnen hoofdlettergebruik volgen
– 2 tot 3 bits kunnen de lettergrootte volgen
– 2 tot 3 bits kunnen de positie ten opzichte van andere woorden volgen
Het lijkt onmogelijk klein. Toch bevat het voldoende informatie om een pagina effectief te rangschikken. De gegevens zijn gecomprimeerd. Het is gecodeerd. Dan is het klaar voor de index.
De hashtabeloplossing
Een index heeft één taak: snelheid. Gegevens direct vinden. Zelfs voor complexe vragen.
Je zou kunnen denken dat alfabetische volgorde werkt. Dat is niet het geval. In het Engels zijn overal ‘M’-woorden te vinden. “X”-woorden zijn zeldzaam. Een woordenboek weerspiegelt dit. M is dik. X is dun. Het zoeken naar “M” duurt langer dan het zoeken naar “X” in een slecht geoptimaliseerd systeem vanwege de onbalans in de distributie.
Hashing lost dit op.
Hashing past op elk woord een formule toe. Het zet het woord om in een numerieke waarde. Deze waarde verdeelt de vermeldingen gelijkmatig over een vast aantal buckets. Het negeert het alfabet. Het negeert de taalfrequentie. Het creëert kunstmatige uniformiteit.
De hashtabel bevat de numerieke sleutel en een verwijzing naar de daadwerkelijke gegevens. De gegevens zelf kunnen op de meest efficiënte manier worden opgeslagen. De aanwijzer overbrugt de kloof tussen snel opzoeken en zware opslag.
Deze scheiding is cruciaal. Je scant niet de hele database. Je berekent de hasj, gaat rechtstreeks naar de emmer en trekt aan de wijzer. Het is direct. Het is snel. Het zorgt voor de lading.
Waarom dit voor u belangrijk is
De volgende keer dat u een zoekopdracht typt en binnen milliseconden resultaten krijgt, moet u de hashtabel onthouden. Denk aan de weging. Denk aan de compressie. Het internet is rommelig. Het is chaotisch. Maar de index temt het. Het verandert lawaai in orde.
De spinnen blijven kruipen. De index blijft groeien. En de algoritmen blijven aanpassen. Want als ze stoppen, merk je het.




























