recherche multicritère sur mots clés

Bonjour,

Je viens de m’inscrire sur cette liste car après plusieurs recherches web et personnelles sur ce sujet, je n’ai toujours pas de solution.
J’ai des articles tagués par plusieurs groupes de mots-clés. J’ai créé un formulaire récupérant ces mots-clés, triés par groupe, qui permet d’afficher les articles liés à ces mots-clés.

Mon problème :
Le choix des mots-clés de recherche est libre : je ne sais pas, pour construire ma boucle de résultats, si j’aurai 1, 2 ou 3 mots-clés
Les résultats doivent correspondre, dans le cas de 2 ou + mots-clés, à un ET logique.

J’ai utilisé :

  • le critère {id_mot IN …} qui fonctionne mais retourne un OU
  • {id_mot=#ENV{mot_1}} {id_mot=#ENV{mot_2}} {id_mot=#ENV{mot_3}} mais si un des mots-clés n’est pas choisi, la boucle ne retourne rien
  • le test sur les variables via #ENV avec #SET puis #GET mais je n’ai pas réussi à insérer ça dans une boucle

J’ai trouvé/testé ces contribs mais elles ne fonctionnent pas avec 1.9.2 :
()
Quelqu’un aurait-il une piste ?

Stéphanie De Nadaï <esse@free.fr> a ecrit:

Bonjour,

Bonjour,

Mon problème :
Le choix des mots-clés de recherche est libre : je ne sais pas, pour construire ma boucle de résultats, si j'aurai 1, 2 ou 3 mots-clés
Les résultats doivent correspondre, dans le cas de 2 ou + mots-clés, à un ET logique.

J'ai construit un plugin (non achevé) mais qui fonctionne et qui correspond à ce que tu veux. Tu peux en avoir un aperçu ici http://www.etab.ac-caen.fr/bureaudestests/TiSpip/spip.php?page=rec_mc_dev ou, avec quelques aménagements ici http://pgm.discip.ac-caen.fr/spip.php?page=rec_mc

Je peux te l'envoyer si tu veux, en plus, cela me permettrait de tester.

Lepaisant Dominique a écrit :

Stéphanie De Nadaï a ecrit
Mon problème :
Le choix des mots-clés de recherche est libre : je ne sais pas, pour  
 construire ma boucle de résultats, si j'aurai 1, 2 ou 3 mots-clés
Les résultats doivent correspondre, dans le cas de 2 ou + mots-clés,  
 à un ET logique.
    
J'ai construit un plugin (non achevé) mais qui fonctionne et qui  
correspond à ce que tu veux. Tu peux en avoir un aperçu ici  
 ou,  
avec quelques aménagements ici  

Je peux te l'envoyer si tu veux, en plus, cela me permettrait de tester.
  

oui, je veux bien essayer. merci.
pour le formulaire, les champs sont personnalisables ? (checkbox « Tous les mots doivent être présent » - tiens, manque le « s » - :wink: en hidden par exemple)
(pour info, le form envoie sur une 404)

Stéphanie De Nadaï wrote:

construire ma boucle de résultats, si j'aurai 1, 2 ou 3 mots-clés
Les résultats doivent correspondre, dans le cas de 2 ou + mots-clés, à un ET logique.

Ah oui, quel casse tête...

Regarde si ceci te donne des idées :
http://www.cent20.net/spip.php?article159

Paolo

Lepaisant Dominique a écrit :

Stéphanie De Nadaï <esse@free.fr> a ecrit:

Bonjour,

Bonjour,

Mon problème :
Le choix des mots-clés de recherche est libre : je ne sais pas, pour construire ma boucle de résultats, si j'aurai 1, 2 ou 3 mots-clés
Les résultats doivent correspondre, dans le cas de 2 ou + mots-clés, à un ET logique.

J'ai construit un plugin (non achevé) mais qui fonctionne et qui correspond à ce que tu veux. Tu peux en avoir un aperçu ici http://www.etab.ac-caen.fr/bureaudestests/TiSpip/spip.php?page=rec_mc_dev ou, avec quelques aménagements ici http://pgm.discip.ac-caen.fr/spip.php?page=rec_mc

Je peux te l'envoyer si tu veux, en plus, cela me permettrait de tester.

J'ai la même problématique et j'aimerais bien tester le plugin, si possible

Pierre N.

Bonjour, je suis aussi confronté au même problème, et voici ma (petite) solution pas encore finie.

Après avoir récupéré mes mots-clés choisis avec un #SET{mot1, #ENV{mot1}}, ainsi que les autres, j'utilise la boucle suivante :

<BOUCLE_resultat(ARTICLES){id_mot IN #GET{mot1}, #GET{mot2}, #GET{motn}}>

Cette boucle a l'avantage que, même si je n'ai qu'un seul mot, elle me renvoie ce qu'elle trouve ... MAIS, comme on peut le voir, je dois savoir à l'avance le nombre de mots récupérés ... et là, je bloque sur la solution technique, pas sur la méthode.

En fait, il faut construire un tableau comportant les mots-clés sélectionés dans le formulaire, ça, pas de pb. Mais je ne sais pas ensuite comment uitliser le tableau ainsi récupéré dans ma boucle (encore mauvaise connaissance de spip, je pense) ... Pourtant, il y a certainement une solution, et c'est un réel besoin pour beaucoup de monde ...

Désolé de ne pouvoir aller plus loin ... mais je reste prêt à avancer pour aller au bout ...

Bon courage.
----
Marc

Le 22 févr. 08 à 15:29, Paolo a écrit :

Stéphanie De Nadaï wrote:

construire ma boucle de résultats, si j'aurai 1, 2 ou 3 mots-clés
Les résultats doivent correspondre, dans le cas de 2 ou + mots-clés, à
un ET logique.

Ah oui, quel casse tête...

Regarde si ceci te donne des idées :
http://www.cent20.net/spip.php?article159

Paolo

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : FAQ webmestre - SPIP

Bonjour

Je viens de lire avec attention vos messages car je vais m'attaquer au même pb. =>
- confimez-vous que les contrib ne fonctionnent pas en 1.9.2 ?
Recherche multi-critère par mots-clés - SPIP-Contrib (Recherche avancée sous SPIP - SPIP-Contrib)
Dans une boucle articles faire un ET logique sur les critères de mot clés - SPIP-Contrib
- Dominique, peux-tu m'envoyer ton pluggins pour l'essayer (pour info, erreur 404 pour http://pgm.discip.ac-caen.fr/spip.php?page=rec_mc)

merci de vos pistes
@m
carole

Marc VALLETEAU de MOULLIAC a écrit :

Bonjour, je suis aussi confronté au même problème, et voici ma (petite) solution pas encore finie.

Après avoir récupéré mes mots-clés choisis avec un #SET{mot1, #ENV {mot1}}, ainsi que les autres, j'utilise la boucle suivante :

<BOUCLE_resultat(ARTICLES){id_mot IN #GET{mot1}, #GET{mot2}, #GET {motn}}>

Cette boucle a l'avantage que, même si je n'ai qu'un seul mot, elle me renvoie ce qu'elle trouve ... MAIS, comme on peut le voir, je dois savoir à l'avance le nombre de mots récupérés ... et là, je bloque sur la solution technique, pas sur la méthode.

En fait, il faut construire un tableau comportant les mots-clés sélectionés dans le formulaire, ça, pas de pb. Mais je ne sais pas ensuite comment uitliser le tableau ainsi récupéré dans ma boucle (encore mauvaise connaissance de spip, je pense) ... Pourtant, il y a certainement une solution, et c'est un réel besoin pour beaucoup de monde ...

Désolé de ne pouvoir aller plus loin ... mais je reste prêt à avancer pour aller au bout ...

Bon courage.
----
Marc

Le 22 févr. 08 à 15:29, Paolo a écrit :

Stéphanie De Nadaï wrote:

construire ma boucle de résultats, si j'aurai 1, 2 ou 3 mots-clés
Les résultats doivent correspondre, dans le cas de 2 ou + mots- clés, à
un ET logique.

Ah oui, quel casse tête...

Regarde si ceci te donne des idées :
http://www.cent20.net/spip.php?article159

Paolo

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : FAQ webmestre - SPIP

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : FAQ webmestre - SPIP

Bonjour,

"Carole Faure (altermundo)" <carole.faure@altermundo.info> a ecrit:

- confimez-vous que les contrib ne fonctionnent pas en 1.9.2 ?

pour ce sui est de la contrib de NetDeveloppeur, elle ne fonctionne plus en l'état à partir de spip 1.9.x, mais elle est adaptable avec du boulot...

- Dominique, peux-tu m'envoyer ton pluggins pour l'essayer (pour info,
erreur 404 pour http://pgm.discip.ac-caen.fr/spip.php?page=rec_mc)

vi, je t'envoie ça, comme je le disais plus haut, il reste pas mal d'améliorations à apporter, mais, étant donné que ça à l'air d'intéresser pas mal de monde, j'ai remis les mains dans l'cambouis. Je l'ai également déposé sur spip-zone, mais en dev, donc c'est en dev :wink: http://trac.rezo.net/trac/spip-zone/browser/_plugins_/_dev_/recherche_multicriteres

Je mettrai un poste ici quand le bébé sera à peu prés présentable (torchage de nez et couches propres...)

merci de vos pistes
@m
carole

Marc VALLETEAU de MOULLIAC a écrit :

Bonjour, je suis aussi confronté au même problème, et voici ma
(petite) solution pas encore finie.

Après avoir récupéré mes mots-clés choisis avec un #SET{mot1, #ENV
{mot1}}, ainsi que les autres, j'utilise la boucle suivante :

<BOUCLE_resultat(ARTICLES){id_mot IN #GET{mot1}, #GET{mot2}, #GET
{motn}}>

Cette boucle a l'avantage que, même si je n'ai qu'un seul mot, elle
me renvoie ce qu'elle trouve ... MAIS, comme on peut le voir, je dois
savoir à l'avance le nombre de mots récupérés ... et là, je bloque
sur la solution technique, pas sur la méthode.

En fait, il faut construire un tableau comportant les mots-clés
sélectionés dans le formulaire, ça, pas de pb. Mais je ne sais pas
ensuite comment uitliser le tableau ainsi récupéré dans ma boucle
(encore mauvaise connaissance de spip, je pense) ... Pourtant, il y a
certainement une solution, et c'est un réel besoin pour beaucoup de
monde ...

Désolé de ne pouvoir aller plus loin ... mais je reste prêt à avancer
pour aller au bout ...

Bon courage.
----
Marc

Le 22 févr. 08 à 15:29, Paolo a écrit :

Stéphanie De Nadaï wrote:

construire ma boucle de résultats, si j'aurai 1, 2 ou 3 mots-clés
Les résultats doivent correspondre, dans le cas de 2 ou + mots-
clés, à
un ET logique.

Ah oui, quel casse tête...

Regarde si ceci te donne des idées :
http://www.cent20.net/spip.php?article159

Paolo

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : FAQ webmestre - SPIP

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : FAQ webmestre - SPIP

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : FAQ webmestre - SPIP

Bonjour,
J'ai eu le même problème, ma solution serait de créer un mot clé
générique qui sera systématique ajouté à tous les articles(ça demande
un effort au rédacteur!) et le tour est joué!
je m'explique,
soit 24 l'id_mot du mot clé générique "recherche".
chaque article du site devra être associer à ce mot.
cequi nous permet d'écrire

{id_mot = #ENV{unmot,24}}

nous sommes si nombreux à desirer le critère optionnel dans les
boucles avec [{id_mot = #ENV{mot}}],
il ne serait pas temps que les développeurs de SPIP s'y penchent
réellement?

Salut,
J'ai eu presque le même problème.
tu n'as pas à créer un tableau dans SPIP je pense.
il suffit de nommer dans ton formulaire, les names avec des nom de
tableau.
exemple: supposé que tu aies des case à cocher qui représentent tes
mots-clés
tu auras pour la création de ton formulaire...

<input type="checkbox" name="mots[]" value="#ID_MOT" />#TITRE
<input type="checkbox" name="mots[]" value="#ID_MOT" />#TITRE

et pour la reception tu fais juste

<BOUCLE_resultat(ARTICLES){id_mot IN #ENV**{mots}}>

/!\ faudra s'assurer qu'une case au moins est toujours cochée.