sdx-users
[Top][All Lists]
Advanced

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

RE : RE : [sdx-users] executeFieldQuery


From: Martin Sevigny
Subject: RE : RE : [sdx-users] executeFieldQuery
Date: Thu, 13 Feb 2003 08:28:54 +0100

Bonjour,

> Or si je demande
>       ?f=contenu&valeur=toto+titi
> 
> sur executeFieldQuery, j'obtiens
>       <sdx:query type="field" engine="lucene" luceneQuery="toto titi"
>               text="toto titi" field="contenu"/>

Logique.

> alors que si je demande
>       ?q=toto+titi
> 
> sur executeSimpleQuery (avec op="and") j'obtiens
>       <sdx:query type="simple" engine="lucene" 
> luceneQuery="+toto +titi"
>               text="toto titi" op="and"/>

Aussi.

> Comment obtenir la seconde luceneQuery avec executeFieldQuery?

Une fieldQuery est vraiment une recherche champ=valeur, donc ce n'est
pas ce type de requête qui vous aidera ici. La documentation
(http://www.nongnu.org/sdx/docs/html/doc-sdx2/fr/api-sdx/actions.html)
nous dit ceci à propos d'une listQuery :

-----
sdx:executeListQuery, field, value(s), (op). 
Lorsqu'une base indexe un champ répétable (auteur(s), sujet(s)...), il
peut être intéressant de rechercher les documents répondant à plusieurs
valeurs sur ce même champ. La recherche d'une liste (paramètre value
répétable sur le champ field), correspond à la requête simple
+field:value1 +field:value2 +field:value3. Notez que l'opérateur par
défaut est un "et", il peut être modifié en "ou" (op=or|and) pour donner
la requête suivante : field:value1 field:value2 field:value3. Comme une
recherche par champ, la recherche de liste est composable dans une
requête complexe.
-----

Je pense que ça répond à votre besoin, non? Il y a aussi la linearQuery
qui vous le ferait si les champs sont différents, et une complexQuery si
jamais votre requête combine des ET et des OU.

A bientôt,

Martin Sévigny





reply via email to

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