Ik bezig met het maken van een simpele search engine, en daarvoor maak ik gebruik van de volgende query:
Deze query zoekt in de tabellen keywords en pages, welke er als volgt uitzien.
Keywords bevat de kolommen: keyid, pageid en keyword
keyid is de id van het zoekwoord
keyword is het zoekwoord
pageid is de pagina waarop het woord voorkomt
Pages bevat de kolommen: pageid, titel, omschrijving en url
de namen spreken voor zich.
Deze querie geeft voor elke hit als resultaat: Een pagina ID, URL van de pagina, omschrijving, en hoeveel zoekwoorden er gevonden zijn op de desbetreffende pagina.
Nu wil ik graag mijn query zodanig uitbreiden dat ik ook de gevonden woorden per pagina bij de resultaten zitten.
Iemand enig idee hoe ik dit kan oplossen??
code:
1
2
3
4
5
6
7
8
| SELECT count(keywords.keyid) as score,
pages.titel as title,
pages.omschrijving as description,
url
FROM keywords, pages
WHERE (pages.pageid = keywords.pageid) AND (keywords.keyword REGEXP 'dit|is|een|test')
GROUP BY keywords.pageid
ORDER BY score DESC |
Deze query zoekt in de tabellen keywords en pages, welke er als volgt uitzien.
Keywords bevat de kolommen: keyid, pageid en keyword
keyid is de id van het zoekwoord
keyword is het zoekwoord
pageid is de pagina waarop het woord voorkomt
Pages bevat de kolommen: pageid, titel, omschrijving en url
de namen spreken voor zich.
Deze querie geeft voor elke hit als resultaat: Een pagina ID, URL van de pagina, omschrijving, en hoeveel zoekwoorden er gevonden zijn op de desbetreffende pagina.
Nu wil ik graag mijn query zodanig uitbreiden dat ik ook de gevonden woorden per pagina bij de resultaten zitten.
Iemand enig idee hoe ik dit kan oplossen??
Zolang ik het zelf geloof is het goed toch?