Il me semble que la méthode de dire "on prend ce qu'on veut comme
FULLTEXT" inclut la méthode que tu proposes. Si tu regardes comment
les index sont pondérés, c'est fait avec le nombre de champs qu'ils
contiennent. Bien sûr, on peut introduire une méthode un peu
différente, qui pondérerait en fonction du poids total des champs
qu'ils contiennent (c'est peut-être ce que tu as fait, je n'ai pas
réussi à lire ton fichier joint).
On gagne tellement avec ce plugin, qu'on peut se fiche de la perte de
compatibilité avec un truc qui ne marchait pas et assumer, en cas de
besoin, un changement.
En revanche, aucune idée de l'impact sur les perfs et l'occupation
disque, il faudra tester. On fait une requête MATCH AGAINST par index,
mais sur les petits champs (titre) ça répond plus vite que sur les
index composés comprenant des gros champs (texte).
Enfin il me semble que si on veut que "+A +B" réponde lorsque le titre
contient A et le texte B, il *faut* un index sur (titre, texte).
PS : je repasse sur la liste car il y a déjà au moins 4 devs sur ce plugin.
2009/3/16 Martin Arnaud <arno@rezo.net>:
Salut Fil,
J'ai fait des modifs pour, me semble-t-il, récupérer directement les valeurs
de pondération de SPIP, qui sont par ailleurs super-faciles à enrichir par
plugin (une fois qu'on a trouvé le bon pipeline non documenté :-)).Parce que le coup des index multiples pour parvenir à fabriquer une
pondération, je trouve ça franchement pas pratique, et en plus ça introduit
une perte de compatibilité.J'ai donc modifié rechercher.php pour réintroduire les pondérations dans le
fulltext. Je crois qu'il faut, du coup, avoir un index fulltext par champ.
Et pas des index avec plusieurs champs d'un coup.Qu'est-ce que tu en penses? Est-ce que ça risque, en revanche, d'introduire
des lourdeurs dans les performances?Arnaud