Geplaatst door: Ramon Geplaatst op: 21-8-2003 14:38:48 Laatste update: 21-8-2003 14:41:56 Aantal keer bekeken: 107807 Zoek functie maken
Een beetje website heeft natuurlijk de mogelijkheid om te zoeken binnen de
site. In dit artikel wordt uitgelegd hoe je op eenvoudige wijze een zoekmachine
voor je website maakt. Eerst zal er wat algemene informatie worden gegeven over
het zoeken, vervolgens zal er uitgelegd worden hoe je met behulp van SQL kan
zoeken in de database. Als laatst zal er een voorbeeld van een zoekscript worden
besproken.
Zoeken De manier van zoeken zal per website verschillen. Het is erg
afhankelijk van de opbouw van de website hoe er gezocht kan worden. Worden
alle pagina's dynamisch opgebouwd en staan dus alle gegevens in de database of
zijn er ook statische pagina's die doorzocht moeten worden? Moet er in de
complete tekst gezocht worden of zijn sleutelwoorden genoeg? Moet er
rechtstreeks in de database gezocht worden of moet er een index gemaakt worden
waarin gezocht kan worden? Dit zijn allemaal vragen die je moet stellen voordat
je een zoekfunctie kan gaan bouwen.
Verschillende
manieren van zoeken Er zijn een aantal manieren hoe de zoekfunctie
opgebouwd kan worden. Hieronder staan er twee:
Rechtstreeks in de database/tabel Dit is een redelijk
eenvoudige manier om een zoekfunctie op te stellen. Het voordeel van het
rechtstreeks zoeken in de database is dat je de verschillende pagina's niet
eerst hoeft te indexeren. Er hoeft alleen een script te worden gemaakt dat in de
database zoek en vervolgens de juiste link naar de informatie genereerd. Dit is
bij sommige websites erg eenvoudig, maar bij andere is dit veel moeilijker.
Grotendeels is dit afhankelijk van de databasestructuur en de spreiding van het
zoeken. Wanneer er in de gehele database gezocht kan worden wordt het lastiger
dan wanneer er alleen in een bepaalde tabel gezocht wordt.
Wanneer het zoekformulier er als volgt uitziet
is het vrij eenvoudig om in de database te zoeken en om vervolgens de juiste
link naar de informatie te tonen. Je weet immers precies in welke gegevens er
gezocht is (bv in het nieuws). Dit zal in het volgende voorbeeld te zien
zijn:
De database ziet er als volgt uit:
Tabel Nieuws
Nieuws_id
Titel
Tekst
1
KLM vliegtuig neergestort
Donderdag avond is in Amsterdam een...
2
Kabinet weer gevallen
Het kabinet Bakenende II is gevallen....
3
Nederland wereldkampioen
Vrijdag is Nederland wereldkampioen...
Tabel Artikelen
Artikel_id
Titel
Tekst
1
ASP.NET: een uitleg
ASP.NET is de opvolger van ...
2
Super snelle database
Ook last van trage databases...
3
Datagrids? De uitleg!
Een belangrijk onderdeel van...
Als de gebruiker een zoekterm heeft ingevoerd zal de zoekpagina de volgende
query kunnen uitvoeren:
zoekterm = Request.QueryString("zoekterm") tabelnaam = Request.QueryString("tabelnaam") SQL = "SELECT * FROM " &
tabelnaam & " WHERE titel like '%" &
zoekterm & "%' OR tekst like '%" & zoekterm
& "%'"
Nu worden alle gegevens geselecteerd waarin de zoekterm in de titel of tekst
voorkomt. Deze gegevens kunnen vervolgens aan de gebruiker getoond worden.
Zoeken in een index Het is ook mogelijk om te zoeken in
een index in plaats van rechtstreeks in de database. Het voordeel hiervan is dat
het zoeken sneller (kan) gaan en je zit niet vast aan de tabellen van de
database. Het is dus mogelijk om meer gegevens, zoals bv statische pagina's, in
de index op te nemen.
Het nadeel van het gebruik van een index is dat je gegevens in de index moet
krijgen. Dit kan ook op verschillende manieren. Een goede manier is het
indexeren doormiddel van de keywords en description meta-tags. Ook kunnen
statische pagina's op deze manier geïndexeerd worden. Het is ook nog mogelijk om
de teksten op de website te filteren van ruiswoorden en deze aan de index toe te
voegen. Zo krijg je een lange lijst met per pagina o.a. een beschrijving en
keywords. Deze gegevens kunnen door bijvoorbeeld spiders worden toegevoegd aan
de database.
Voorbeeld van een index
Tabel zoekIndex
index_id
Titel
Beschrijving
Keywords
Url
1
ASP.NET: een uitleg
ASP.NET is de opvolger van ...
ASP.NET, basis, uitleg, taal, tutorial, les...
artikel.asp?id=12
2
Super snelle database
Ook last van trage databases...
database, access, sql, snel, toegang...
artikel.asp?id=24
3
Nederland wereldkampioen
Vrijdag is Nederland wereldkampioen...
voetbal, kampioen, winnaar, WK...
/nieuws/nieuws.asp?id=12
Madness.nl gebruikt deze manier op de website voor de zoekfunctie. De reden
waarom hiervoor gekozen is, is dat ik een zoekfunctie wou waarbij je geen
onderdeel hoeft aan te geven. De zoekfunctie doorzoekt dus de gehele website.
Bij elk artikel, script of les worden sleutelwoorden en een beschrijving
opgegeven. Deze worden voor de interne en externe zoekmachines gebruikt. Bij het
opslaan van de gegevens worden de gegevens gelijk toegevoegd aan de
zoekindex.
De SQL query wordt dan als volgt:
zoekterm = Request.QueryString("zoekterm") SQL = "SELECT Titel, beschrijving,
url FROM ZoekIndex WHERE titel like '%" &
zoekterm & "%' OR beschrijving like '%" &
zoekterm & "%' OR keywords like '%" &
zoekterm & "%'"
Het is zo ook zeer eenvoudig om mooie zoekresultaten te laten zien.
Op de volgende pagina zal er een voorbeeld van een compleet zoekscript te
vinden zijn.
Lijkt me een goed bruikbaar scriptje.
Alleen ik heb dit nog niet eerder bij de hand gehad..
Wat moet ik in het asp script wijzigen om dit te laten zoeken binnen mijn site. Wie kan mij daarbij helpen?
Ik ben bezig om in access een database te maken. Hier moet ook een zoekfunctie in komen. Maar ik weet helemaal niet hoe dit werkt.
ZOu iemand mij hier misschien mee kunnen helpen alvast bedankt
ik ben nieuw in het maken van databases (beginneling)......
Maar ik moet in me database een zoekfunctie maken. kan misschien iemand me helpen, hoe ik dat moet doen.
Een zoekfunctie moet je maken met SQL. Dus daar bepaal je in welke velden er gezocht moeten worden en aan welke voorwaarden het moet voldoen.
De vraagt dus het zoekwoord op en dan probeer je gegevens te selecteren waar het zoekwoord in voorkomt.