login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Strings vergelijken

Offline Elpiedro - 12/11/2008 12:03
Avatar van ElpiedroPHP interesse Hoi,

Ik ben bezig met een zoek script dat goed werkt. Als er resultaten zijn gevonden wordt de zoekterm opgeslagen in een database. Als die term er al instaat wordt er gewoon een nummertje verhoogt. Dat werkt allemaal perfect, maar ik wil een "bedoel je dit" functie. Hiermee bedoel ik zoals bij google, als je een term fout intikt of als een term die meer resultaten weergeeft. De term zou ik dan uit de database halen, dat weet ik allemaal hoe dat moet. Maar is er een functie of een andere manier om de zoekterm met de termen in de database te vergelijken en dan de meest gelijkende term kiest. Als er een functie bestaat die de twee termen gewoon vergelijkt en een resultaat weergeeft in getallen hoeveel de twee termen op elkaar lijken dat zou fantastisch zijn!

wie kan me helpen!  

7 antwoorden

Gesponsorde links
Offline Erwt - 12/11/2008 12:50 (laatste wijziging 12/11/2008 12:51)
Avatar van Erwt PHP beginner Waarschijnlijk is het niet je antwoord maar je zou d.m.v SQL: LIKE kunnen kijken of de ingevoerde string ergens tussen staat?

Stel je voor dat ze ingetikt hebben: barb.

Dan doe je LIKE '%"Barb"%' en dan zou hij met resultaten moeten komen als:

Barbie
Barbeque
rebarber

//edit: O, ik heb het verkeerd gelezen denk ik.. maar bij bedoelde je dit moet je natuurlijk wel woorden hebben die op elkaar lijken en in een database steken. veel werk.
Offline zointer - 12/11/2008 12:54
Avatar van zointer HTML gevorderde eigenlijk moet je een woordenboek db hebben waarbij je dan woorden met elkaar gaat vergelijken.






Zo een woordenboek db is zeer groot heb ik zelf(deze kan je zelfs aankopen ergens)
Offline Elpiedro - 12/11/2008 13:12
Avatar van Elpiedro PHP interesse Nee, deze database wordt gemaakt door al de zoekopdrachten die op de site gebeuren, dus het ontwikkelt zich zelf!
Offline zointer - 12/11/2008 13:21
Avatar van zointer HTML gevorderde Awel dan moet je daarmee gaan vergelijken hé.




Dus als iemand een fout woord ingeeft zal deze bij jou altijd fout blijven Zal rare weergave zijn, iemand geeft in "barby" en je slaat het op, later typt iemand "barbie" en weergave is "Bedoelde u: barby" 
Offline Gerard - 12/11/2008 15:08
Avatar van Gerard Ouwe rakker Alleen opslaan als er daadwerkelijk resultaten waren, dat is dan de tweede stap.
Offline Elpiedro - 12/11/2008 20:29
Avatar van Elpiedro PHP interesse Ja, dat gebeurt er al. Ik wil gewoon twee strings vergelijken...
Offline nemesiskoen - 12/11/2008 21:15 (laatste wijziging 12/11/2008 21:16)
Avatar van nemesiskoen Gouden medaille

PHP expert
Google werkt op een heel andere manier:
Stel je typt "peter ptrelli" dan slaat google je ip en en de paginaid (in welke rij je deze pagina bezoekt. Stel je zoekt eerst op jan dan is dit 1, daarna op piet dan is dit 2, etc...) + zoekstring op. Je merkt dat dit verkeerd is en veranderd dit in "peter petrelli". Om het gemakkelijk te maken zeggen we dat het bij de eerste volgende data opslaat:

blok1
-----
ip: 123.123.123.123
paginaid: 1
zoekstring: peter ptrelli

blok2
-----
ip: 123.123.123.123
paginaid: 2
zoekstring: peter petrelli

Het is nu duidelijk dat je zocht naar peter petrelli nadat je naar peter ptrelli hebt gezocht. Als dit bij meerdere gebruikers voorkomt wordt er een link gelegd in een andere tabel waarbij de zoekstring "peter ptrelli" een link krijgt naar de zoekstring "peter petrelli". Dus google gebruikt met andere woorden je fout en de herstelling als referentie. En gebruikt dus geen speciaal algoritme van woorden die op elkaar lijken etc. Je kan dit ook gaan toepassen maar ik ben bang dat bij applicaties die minder dan 100 zoekstrings (in een bepaalde categorie) per dag krijgen dit totaal geen nut heeft.

p.s. gotta love heroes:-)
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.163s