Hallo,

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

Bedankt alvast!
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...

denk dat ik dit voor nu ga gebruiken...

wat houd sphinx in?
Op hoeveel woorden zoek je?
Bart V B op 20/07/2013 14:04:13

http://sphinxsearch.com/docs/current.html

Heb je ook een explain query gedaan?
Want dan weet je hoe lang hij er over doet en wat hij aanspreekt.


zal eens kijken hoe dat werkt met die explain query. Dat sphinx had ik al opgezocht en lijkt interessant, hier in de toekomst eens naar kijken
Hoe het werkt is heel simpel.
Voor dat je select doet zet je er explain voor. ;-)
Was ik al achter ;)

Alleen krijg ik geen tijd te zien, dit is het resultaat

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.
Hmm... zal eens kijken hoe dat in z'n werk gaat

bedankt voor de hulp!
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.

Reageren