[PHP/MySQL] Beste manier bijhouden zoekgeschiedenis?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Farmerwood
  • Registratie: September 2004
  • Niet online
Op mijn site is het voor gebruikers mogelijk om te zoeken naar artikelen, in nieuwsbeichten of teksten op pagina's, etc.
Nu is het de bedoeling om deze zoekopdrachten op te slaan in de database om hier later de statistieken van te kunnen bekijken. Hiervoor heb ik een opzet gemaakt en het werkt prima.
Voor 1 ding heb ik echter nog geen oplossing.

Als een gebruiker zoekt op de term "a b c" dan wil ik dat opslaan als 1 zoekterm. Als een andere gebruiker zoekt op bv "c b a" of "b c a" dan zijn dat in principe dezelfde zoekopdrachten. Hoe kan ik ervoor zorgen dat ik dit toch als dezelfde zoekterm kan herkennen bij het bekijken van de statistieken?
Alle termen los opslaan en die steeds vergelijken met elkaar? Dat zal zodra de database groeit snel voor een flinke belasting zorgen vrees ik.

Wie kan hier wat tips voor geven?

Acties:
  • 0 Henk 'm!

Anoniem: 26306

Zoektermen alfabetiseren.

Acties:
  • 0 Henk 'm!

  • Farmerwood
  • Registratie: September 2004
  • Niet online
hm dat klinkt bijna te simpel, maar zou wel eens de oplossing kunnen zijn ja. :)

Acties:
  • 0 Henk 'm!

  • hamsteg
  • Registratie: Mei 2003
  • Laatst online: 21:51

hamsteg

Species 5618

Zie antwoord boven en filter je verbindingswoordjes en standaard zinnen er dan wel uit anders heeft het voor analyse helemaal geen zin.
  • How to use Web2.0
  • Explain Web2.0
  • Web2.0
  • Web+2.0
  • Usage Web2.0
  • Description Web2.0
Zijn allemaal dezelfde zoek query.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 11-06 00:38

NMe

Quia Ego Sic Dico.

Misschien, maar zo slim kun je een filter toch niet maken. Usage is bijvoorbeeld een woord dat ook prima in andere queries voor kan komen als belangrijk onderdeel ervan. Als iemand zoekt op "CPU usage too high" dan wil je niet dat het woord "usage" weggefilterd wordt, want dan krijg je foute statistieken.

Woorden als "is", "the", "a", enz. (of de Nederlandse varianten daarvan) kun je prima uitfiltereren; dat doet Google ook. Maar meer dan dat zou ik zeker niet willen doen.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • hamsteg
  • Registratie: Mei 2003
  • Laatst online: 21:51

hamsteg

Species 5618

Sorry was een voorbeeld ... ik ben geen analist. Er zijn vast sites die je meer kunnen vertellen over termen die te filteren zijn.


Een andere mogelijkheid ... in eerste instantie veel ingewikkelder maar bij grote sites veel voordeliger, de volgende mogelijkheid:

Sla elk woord apart op en breidt de tabel uit met een next word link en een counter. Voorbeeld volgende twee zoektermen.
- Description Web2.0
- Explain Web2.0

Wordt in je tabellen:
Description, counter = 1, next reference --> Web2.0, reference counter = 1
Explain, counter = 1, next reference --> Web2.0, reference counter = 1
Web2.0, counter = 2, NULL, NULL

Voor analyse kan het zelfs beter zijn om niet alleen next reference aan te leggen maar ook previous refferences.

Met simpele queries kun je de enkele woorden sorteren en counten. Voor analyses kun je snel zien hoe mensen bij een woord zijn gekomen (volg next of previous reference). Een nadeel: de exacte zoekopdrachten kun je niet meer terug halen (wat statistisch toch niet interessant is).

[ Voor 6% gewijzigd door hamsteg op 04-06-2006 13:45 . Reden: Typo en statistiek regel ]

Pagina: 1