sdx-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [sdx-users] Opérateur SAUF entre 2 champs de recherche : SimpleQuer


From: Frederic . Evesque
Subject: RE: [sdx-users] Opérateur SAUF entre 2 champs de recherche : SimpleQuery contre ComplexQuery
Date: Thu, 8 Apr 2004 14:05:59 +0200

Bonjour,

Au vu des réponses formulées, j'en conclue que cela n'est pas (encore)
possible avec une ComplexQuery.

Je me pose alors la question : dans les cas particuliers de "recherche
avancée", faut-il utiliser l'API SDX ComplexQuery ou faut-il utilser une
SimpleQuery en se fabriquant soit même sa requête Lucene ?
En effet, en interceptant les paramètres et en rajoutant du code Java, on
peut générer dans mon cas une variable String q="+titre:ville
-auteur:michel" qui contient la syntaxe de recherche souhaitée.

A priori, avec une SimpleQuery avec pour seul paramètre q, on peut tout
exprimer, sauf... si on veut utiliser les fonctionnalités de thesaurus, où
il est nécessaire d'avoir une ExpandQuery ?
Et on retombe sur le problème des ComplexQuery qui ne fonctionnent pas
toujours.

Comment peut-on faire alors ?
Des idées ?

Frédéric



>Ma réponse sera une... non-réponse car je n'ai jamais 
> réellement compris la
> >complexQuery :-)
> >
> >En tout état de cause, il y a tout intérêt à voir l'attribut 
> luceneQuery
> >pour voir comment la complexQuery SDX a été mappée en une 
> Query Lucene.


> -----Message d'origine-----
> De : address@hidden
> [mailto:address@hidden
> Envoyé : mer. 7 avril 2004 18:26
> À : address@hidden
> Objet : [sdx-users] Opérateur SAUF entre 2 champs de recherche
> 
> 
> Bonjour,
> 
> Je voudrais savoir si le paramètre "complexop" que l'on peut 
> mettre au sein
> d'une "ComplexQuery" peut prendre la valeur "not", pour SAUF, car
> apparemment cela ne fonctionne pas.
> 
> En effet, j'ai fait un formulaire de recherche multichamps 
> (titre, auteur,
> etc) avec des opérateurs "et", "ou", "sauf" entre ces champs.
> Dans la page de recherche, j'ai notamment défini les champs 
> titre, auteur,
> ainsi que l'opérateur "operateur_titreauteur" qui peut 
> prendre trois valeurs
> : "and", "or" et "not".
> Dans la page de résultats, le code SDX correspondant est le suivant :
> 
> <sdx:executeComplexQuery base="notices">
>       <sdx:simpleQuery field="titre" queryParam="titre"/>
>       <sdx:simpleQuery field="auteur" queryParam="auteur"
> complexopParam="operateur_titreauteur"/>
>       ...
> </sdx:executeComplexQuery>            
> 
> Cela fonctionne quand on veut faire des recherches du type 
> "titre:ville or
> auteur:michel" et du type: "titre:ville and auteur:michel". 
> Le nombre de
> résultats est bien différent.
> Par contre, avec la recherche "titre:ville not 
> auteur:michel", il renvoie le
> même résultat qu'avec un ET, qui doit être l'opérateur 
> booléan par défaut.
> 
> Ai-je manqué quelque chose ?
> Comment faut-il s'y prendre sinon ?
> 
> Cordialement,
> 
> Frédéric Evesque
> 
> 
> 
> _______________________________________________
> sdx-users mailing list
> address@hidden
> http://mail.nongnu.org/mailman/listinfo/sdx-users
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]