Door
Machiel K
op 28-02-2015 15:56
gewijzigd op 28-02-2015 15:58
1.718 views
Hallo.
Ik ben nu bezig met een zoekpagina.
Hiervoor gebruik ik de volgende query:
$zoek_query = "SELECT `titel`, `...`, `...` FROM `items` WHERE MATCH(titel,beschrijving,tags) AGAINST ('".$qsql."') ORDER BY id DESC";
Nu krijg ik steeds de error "Can't find FULLTEXT index matching the column list" terug. Dit krijg ik echter alleen als ik MATCH(titel,beschrijving,tags) gebruik. Als ik niet drie rijen, maar alleen de rij "titel" in de MATCH zet, werkt het wel gewoon.
Hoe komt het dat ik niet meerdere rijen in de MATCH() kan zetten?
Column list betekent niet de 'kolom list', maar de kolommenlijst in MATCH(titel,beschrijving,tags). De FULLTEXT INDEX moet een samengestelde index zijn met de`in deze MATCH genoemde kolommen:
ALTER TABLE items
ADD FULLTEXT INDEX (titel,beschrijving,tags);
Aha. Krijg het niet aan de praat. Waarschijnlijk vanwege de MySQL versie? (5.1).
Hoe kan ik dan het beste de query laten uitvoeren? Iets als dit?
$query = "SELECT `titel`, `...`, `...` FROM `items` WHERE `titel` LIKE '%".$zoekterm."%' OR `beschrijving` LIKE '%".$zoekterm."%' OR `tags` LIKE '%".$zoekterm."%'";