Ik maak in mijn systeem gebruik van fulltext search in MySQL. Dat werkt overal prima, behalve op het kenteken veld. Dit komt doordat daar een streepje (-) instaat.
Ik heb geprobeerd met of zonder BOOLEAN MODE, gebruik van de REPLACE tag om het streepje te verwijderen (wat niet lukte) en heel internet afgezocht, maar helaas geen oplossing gevonden.
Ook heb ik het minimale aantal karakters als op 3 gezet (ft_min_word_len=3) zodat kentekens als 11-AAA-2 gevonden kunnen worden, maar dan blijf ik zitten met kentekens zoals 11-AA-BB. Het minimale aantal karakters op 2 zetten heeft helemaal geen zin, want dan krijg ik teveel ruis in mijn zoekresultaten.
Ik wil geen gebruikmaken van extra software zoals Sphinx, maar zoek een "simpele" oplossing.
Mijn idee was om de streepjes weg te halen middels PHP
En dan via REPLACE in MySQL ook het streepje te verwijderen.
Maar dat lukt niet.
Wie kan mij een beetje op weg helpen?
Ik heb geprobeerd met of zonder BOOLEAN MODE, gebruik van de REPLACE tag om het streepje te verwijderen (wat niet lukte) en heel internet afgezocht, maar helaas geen oplossing gevonden.
Ook heb ik het minimale aantal karakters als op 3 gezet (ft_min_word_len=3) zodat kentekens als 11-AAA-2 gevonden kunnen worden, maar dan blijf ik zitten met kentekens zoals 11-AA-BB. Het minimale aantal karakters op 2 zetten heeft helemaal geen zin, want dan krijg ik teveel ruis in mijn zoekresultaten.
Ik wil geen gebruikmaken van extra software zoals Sphinx, maar zoek een "simpele" oplossing.
MySQL:
1
| SELECT id FROM auto WHERE MATCH (kenteken) AGAINST('".mysql_real_escape_string($zoekwoord)."' IN BOOLEAN MODE) |
Mijn idee was om de streepjes weg te halen middels PHP
PHP:
1
| $zoekwoord = str_replace('-','',$_POST['zoekwoord']); |
En dan via REPLACE in MySQL ook het streepje te verwijderen.
MySQL:
1
| SELECT id FROM auto WHERE MATCH (REPLACE(kenteken, '-', '')) AGAINST('".mysql_real_escape_string($zoekwoord)."' IN BOOLEAN MODE) |
Maar dat lukt niet.
Wie kan mij een beetje op weg helpen?