[Top][All Lists]
[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