Voor het zoeken naar producten op mijn site gebruik ik fulltext search.
Daarbij heb ik 1 probleempje.
Ik heb deze code: +ZOEKVELD*
Als deze waarde in de database staat: abcdefghij
en ik zoek op abcd dan wordt het resultaat gevonden
als ik zoek op bcdef dan vindt hij niets. Hoe kan ik ervoor zorgen dat ik ook het eerste deel van het woord kan weglaten en het toch vindt?
Ik heb dit geprobeerd +*ZOEKVELD* maar ook dat werkt niet
Ok bedankt, heb bovenstaand idee nu in mijn code toegevoegd en merk nog niets van het langzaam worden. zelfs bij meer dan 7000 gevonden resultaten werkt het nog goed...
Zoals je ziet heb je geen key's.
Nu is mijn sql wat stroefjes om het goed uit te leggen, maar waar het op neer komt is dat je een index moet aanmaken.
Dat is een stukje wat er voor zorgt dat hi je niet de hele database hoeft te raadplegen. Maar dat hij uit dat stukje de juiste gegevens ophaalt.
Nb let wel op dat optimaliseren gedaan dient te worden als je een probleem hebt.
Niet als je geen performance probleem hebt.
Het aanmaken van een index is hier zinloos. Door het gebruik van een wildcard voor de zoekterm kan een index niet meer gebruikt worden.
En wat betreft de tijd die de query duurt zoe ik zoektermen testen die steeds langer worden, in elk geval tot zo'n 10 woorden. Dan kan je zien of het nog steeds snel genoeg is voor je.