[spip-dev] [BUG ?] rechercher/joindre des mots-clé

Bonsoir,

SPIP 2.0.0 beta2 SVN [13072]

Je cherche à ajouter des mots-clés d'un groupe qui en contient une centaine à une série d'articles. Il n'y a donc pas de sélecteur déroulant.

Lorsque je tape une partie du titre à rechercher et je clique « Chercher »
le texte suivant s'affiche :
"spip_mots_spip_articles insertion sans description"

et aucun mot-clé n'est ajouté à l'article. Même chose si je tape le titre du mot-clé en entier.

Mais si je tape une partie du titre suffisamment courte pour que cela correspond à plus d'un mot, alors SPIP m'affiche quand-même la liste pour en faire un choix. C'est la seule façon de pouvoir attribuer des mots en ce moment !

Paolo

Paolo a écrit :

Bonsoir,

SPIP 2.0.0 beta2 SVN [13072]

Je cherche à ajouter des mots-clés d'un groupe qui en contient une centaine à une série d'articles. Il n'y a donc pas de sélecteur déroulant.

Lorsque je tape une partie du titre à rechercher et je clique « Chercher »
le texte suivant s'affiche :
"spip_mots_spip_articles insertion sans description"

et aucun mot-clé n'est ajouté à l'article. Même chose si je tape le titre du mot-clé en entier.

Mais si je tape une partie du titre suffisamment courte pour que cela correspond à plus d'un mot, alors SPIP m'affiche quand-même la liste pour en faire un choix. C'est la seule façon de pouvoir attribuer des mots en ce moment !

Ok, je confirme.

Si le mot exact est trouvé, il affiche cette erreur. Sinon, il affiche une liste bizarre qui n'a pas grand chose a voir avec la recherche effectuée.

Voici mon petit script (dans un squelette) pour tester (dans un nouveau groupe d'id=6)
<?php
include_spip('base/abstract_sql');
sql_delete('spip_mots','id_groupe=6');
$abc="a b c d e f g h i j k l m n o p q r s t u v w x y z";
$abc = explode(' ',$abc);
for($i=0;$i<26;$i++)
for($j=0;$j<26;$j++)
{
  $t = $abc[$i].$abc[$j].$abc[$i].$abc[$j];
  $id = sql_insertq('spip_mots', array('titre'=>$t,'id_groupe'=>6));
  echo "$id > ";
}
?>

Ca ajoute environ 600 mots au groupe, de 4 lettres. (aaaa,abab,acac,...)

Dans un article, le selecteur propose une recherche dans le groupe.
Si je cherche 'aaaa', j'ai l'erreur citée.
Si je cherche 'bricot' j'obtiens :

Plusieurs mots-clés trouvés pour "bricot":
     * aaaa
     * abab
     * acac
     * adad
     * aeae ... ...

J'ai du mal à comprendre le rapport. Mais à y regarder de près avec d'autres recherche, ça semble bien chercher des termes approchants. C'est assez impressionnant. On dirait même que c'est très fort :wink:

Exemple :
Plusieurs mots-clés trouvés pour "goul":
     * glgl
     * gogo
     * ulul
     * uouo

Bon, donc il n'y a que le bug du mot parfait à trouver

Matthieu Marcillaud a écrit :

Paolo a écrit :

Lorsque je tape une partie du titre à rechercher et je clique « Chercher »
le texte suivant s'affiche :
"spip_mots_spip_articles insertion sans description"

Trouvé, je dépose dès que la zone revient. Ca ferme le ticket #1586 qui est le même problème.

Merci.

Ce n'est pas mon avis, il y a vraiment quelque chose de bizarre.
Je repète que de mon côté je n'avais pas le bug, j'ai encore essayé avec la version précédente.
Ta modif fait perdre en généralité, puisqu'elle utilise table_objet_sql
qui est une fonction obsolète par rapport à ce que permet trouver_table.
Pour moi il y a un plugin ou une mauvaise mise à jour qui était responsable du bug,
autrement ça voudrait dire que c'est trouver_table qui est buggée et ça se serait vu.

Committo,Ergo:Sum

Committo,Ergo:sum a écrit :

Ce n'est pas mon avis, il y a vraiment quelque chose de bizarre.
Je repète que de mon côté je n'avais pas le bug, j'ai encore essayé avec la version précédente.
Ta modif fait perdre en généralité, puisqu'elle utilise table_objet_sql
qui est une fonction obsolète par rapport à ce que permet trouver_table.

Ah, pardon, ça je savais pas : trouver_table est utilisé dans la fonction id_table_objet(), je pensais que c'était identique. Ca serait bien d'avoir une fonction appelable facilement qui fasse donc pareil que table_objet_sql(). J'ai simplement changé parce que je trouvais moins lisible de calculer $desc, puis de faire $table_id = $desc['primary key']; que d'utiliser la fonction prévue pour id_table_objet(). Bref.

L'erreur quand à elle provenait d'un mauvais report dans 13044 qui avait oublié pour la branche de passer un $table en $nom, c'était simplement cela. Travaillant sur la branche, je n'avais pas vu avant que le bug n'existait pas sur la dev.

Donc, on peut remettre trouver_table si tu souhaites, ce qui n'était pas le problème.

L'erreur quand à elle provenait d'un mauvais report dans 13044 qui avait oublié pour la branche de passer un $table en $nom, c'était simplement cela.

Ah oui zut, voilà mon bug. Le ticket #1586 parlait de la "SVN 13060" ce qui semblait indiquer la branche dev, alors que c'était la branche 2.0.

Donc, on peut remettre trouver_table si tu souhaites, ce qui n'était pas le problème.

Oui, s'il te plait remets-le: le role de 13044 est justement de pouvoir s'appliquer à d'autres tables que celles std, c'était demandé dans un mail sur spip-dev il y a qq temps.

Committo,Ergo:Sum

Matthieu Marcillaud wrote:
> Modified:
> branches/spip-2.0/ecrire/inc/editer_mots.php

Merci ! Tout semble bien maintenant.
Paolo