26
Indiquez l’intérêt que vous portez à cette question
0

>Fonction recherche incompatible avec mySQL 4.1.8

Après installation d’un nouveau site il est apparu que la fonction recherche fonctionnait mal, certains mots n’étaient pas trouvés, même après ré-indexation manuelle du site.

Finalement je me suis résolu à mettre les mains dans le cambouis et j’ai découvert que l’indexation fonctionnait parfaitement (les mots étaient bien présents dans la table shim_spipnet.spip_index_dico) mais que la recherche se plantait aléatoirement dans recherche.php3 :

... requete_txt_integral(’article’, $hash_recherche) ;
qui formate la requête SQL :
... AND rec.hash IN ($hash_recherche) et ça il ne trouve pas dans la table et pourtant il existe !

Tout paraissait correct et je suis resté perplexe jusqu’au moment où j’ai eu le flash : les mots non trouvés avaient tous des hash négatifs (du moins qui seraient négatifs en BIGINT).

J’ai alors pu reproduire facilement le problème, ce n’est pas un bug de SPIP mais un bug de mySQL version 1.4.8. J’ai émis un rapport d’anomalie chez eux (bug no 8009).

Donc vous avez intérêt à ne pas migrer trop vite sur la dernière version de mySQL, statistiquement vous ne trouverez que la moitié des mots que vous cherchez !