SQLSTATE[HY000]: General error: 1191 Can't find FULLTEXT index matching the column list
Dieses Issue ist recht wichtig, solltest du Zeitnah prüfen. Folgendes, auf dem pcsg3 Server habe ich auf einem QUIQQER v2 und neusten Modulen von quiqqer/products und quiqqer/productssearch folgenden MySQL Error erhalten:
SQLSTATE[HY000]: General error: 1191 Can't find FULLTEXT index matching the column list
Die Query sieht zu dem Zeitpunkt so aus:
"$masterSqlQuery": "SELECT id, parentId,@score1 := CASE WHEN productNo IS NOT NULL THEN (MATCH(productNo) AGAINST (:searchTerm IN BOOLEAN MODE) * 1000 -LENGTH(productNo) * 100) ELSE 0 END as score1,@score2 := CASE WHEN LENGTH(productNo) < 4 AND productNo = 'fox' THEN 5000 WHEN LENGTH(productNo) < 4 AND productNo LIKE '%fox%' THEN 1000 ELSE 0 END as score2,@score3 := CASE WHEN F4 IS NOT NULL THEN (MATCH(F4) AGAINST (:searchTerm IN BOOLEAN MODE) * 100 -LENGTH(F4) * 1) ELSE 0 END as score3,@score4 := CASE WHEN LENGTH(F4) < 4 AND F4 = 'fox' THEN 5000 WHEN LENGTH(F4) < 4 AND F4 LIKE '%fox%' THEN 1000 ELSE 0 END as score4,@score5 := CASE WHEN F5 IS NOT NULL THEN (MATCH(F5) AGAINST (:searchTerm IN BOOLEAN MODE) * 10 -LENGTH(F5) * 1) ELSE 0 END as score5,@score6 := CASE WHEN LENGTH(F5) < 4 AND F5 = 'fox' THEN 5000 WHEN LENGTH(F5) < 4 AND F5 LIKE '%fox%' THEN 1000 ELSE 0 END as score6,@score1+@score2+@score3+@score4+@score5+@score6 as score FROM products_cache WHERE lang = :lang AND (tags LIKE :freetextTags OR F3 LIKE :freetext3_0 OR F4 LIKE :freetext4_1 OR F5 LIKE :freetext5_2 OR F13 LIKE :freetext13_3) AND active = 1 AND type != :variantChildClass ORDER BY score DESC, id DESC",
Fehler wird hier geworfen:
Ich habe auf dem System folgendes ausgeführt um es zu beheben:
ALTER TABLE `products_cache` ADD FULLTEXT(`productNo`);
ALTER TABLE `products_cache` ADD FULLTEXT(`F4`);
ALTER TABLE `products_cache` ADD FULLTEXT(`F5`);
Ich denke das sollte das System selbstständig machen ^^ Da ich nicht weis wie du dir das bei der Suche gedacht hast, bitte die Alter Table Query für die nötigen Felder wahrscheinlich beim Feld anlegen ausführen oder den Fehler prüfen und anderweitig beheben.
Ich weis auch nicht ob dies nun an der MySQL / MariaDB Version liegt.