17. oktober 2011 - 18:28Der er
6 kommentarer og 1 løsning
Funktion; Læs også i ASP
Hej,
Normalt ville dette ikke være et problem for mig, men jeg kan ikke lige gennemskue hvordan det skal drejes og kodes.
Jeg ønsker, at når men klikker sig ind på en nyhed, så skal der være en udkald som finder relaterede nyheder. Jeg for forsøgt mig med følgende:
sql = "select * from XXX where emne like '%" & rs("emne") & "%' order by id desc limit 0,5"
Altså at den skal finde 5 af de seneste indlæg, som har noget med det samme emne at gøre.
Men det eneste den giver mig er præcis den nyhed man er inde på, netop fordi den ville søge således:
... where emne like "Hej du er ikke velkommen her" Og naturligvis er der kun 1 nyhed som har samme topic. Hvordan får man den til at søge bredt, så den viser flere relaterede nyheder ?
Som arne nævner, kan du jo opdatere keyword-tabellen, når nyheden gemmes, således du splitter teksten op i de enkelte ord og gemmer hvert enkelt ord i keyword-tabellen sammen med det aktuelle nyhedsid. Dog er jeg lidt uenig med arne i, at du skal undlade at gemme ordet for kendte ord (med mindre det er kendte ord for samme nyhedsid), for ellers vil der jo kun komme én nyhed for f.eks. ordet "velkommen", selvom der måske er 50 nyheder som indeholder "velkommen".
Du kan evt. lave en relationstabel mellem ordlisten og nyhedstabellen (indeholdende kolonnerne nyhedsid og ordid), således du ikke har så meget redundans af samme ord, men det hører måske til i afdelingen for flueknepperi... :-)
Hvis det skal være rigtig fancy, sørger din rutine for at filtrere de ord fra som er mest almindelige. Dette kunne gøres ud fra forskellige kriterier, f.eks. forholdsord, bindeord, eller en simpel liste af ekskluderede ord eller noget helt fjerde...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.