sdx-users
[Top][All Lists]
Advanced

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

Re: [sdx-users] pb. : tests sur thesaurus - listquery


From: Pierrick Brihaye
Subject: Re: [sdx-users] pb. : tests sur thesaurus - listquery
Date: Thu, 22 Jul 2004 10:27:56 +0200
User-agent: Mozilla/5.0 (Windows; U; Win98; fr-FR; rv:1.6) Gecko/20040113

Je réponds sur la listQuery...

zaghouane samir a écrit :

j'ai essayé d'utiliser la listquery (voir code
ci-dessous), la recherche sur : nom du nom2 me ramène
les documents comportant : nom1 du nom2 mais aussi
ceux comportant nom1 sans nom2 et inversement
(comportement de ou malgré op="and"), (recherches_f.xsp?page=recherches_f&valeur=Nom1+du+Nom2&champ=contenu&ope=and&base=sdxworld)

Avant tout, SDX voit votre listQuery comme ça :

<sdx:complexQuery complexopParam="ope">
  <sdx:fieldQuery fieldParam="champ" value="Nom1"/>
  <sdx:fieldQuery fieldParam="champ" value="du"/>
  <sdx:fieldQuery fieldParam="champ" value="champ"/>
</sdx:complexQuery>

Ensuite, 2 cas de figure :

A) Si votre champ sous-jacent est de type "field", il faudra impérativement qu'il ait les valeurs "Nom1" ET "du" ET "Nom2". Si on avait utilisé une simpleQuery, ça se rendrait comme cela :

|Nom1| AND |du| AND |Nom2|

et... attention aux majuscules qui *sont* significatives dans ce contexte !

B) Si votre champ sous-jacent est de type "word", la simpleQuery serait celle-ci :

Nom1 AND du AND Nom2

Or, si ce champ est de type word, il est *analysé*.

Comme j'imagine que vous utilisez un analyseur français, le "du" est un mot vide, ce qui donne :

Nom1 AND Nom2

Comme ce n'est pas ce que vous obtenez, je soupçonne fortement Nom2 d'être un mot vide, ce qui donne ça :

Nom1

Me trompè-je ?

Alors qu' une exécution  avec un nom composé entre ""
ex: "nom1 du nom2",
(recherches_f.xsp?page=recherches_f&valeur=%22nom1+du+nom2%22&champ=contenu&ope=and&base=sdxworld)
me donne bien le résultat attendu.

Ici c'est différent.

Si votre champ est de type "field", vous recherchez "nom1 du nom2" (avec les guillemets et des minuscules).

Si votre champ est de type "word", vous recherchez *une* *phrase*. Notez au passage que ça ne sert pas grand-chose d'utiliser une listQuery si vous recherchez *une* seule chose.

Une phrase, c'est une suite de mot *significatifs* qui se *suivent*

Si, dans votre document vous avez :

"nom1 du nom2", ça va répondre.
"Nom1 du nOM2 répondrait aussi (l'analyse passe tout en minuscules)
"nom1 de nom2" répondrait aussi (l'analyse ne tient pas compte du mot vide)
...

Ca répond, certes, mais 2 mots qui se suivent, c'est un cas particulier de présence de ces 2 mots dans un même champ... et ce n'est peut-être pas ce que vous recherchez.

A bientôt,

--
Pierrick Brihaye, informaticien
Service régional de l'Inventaire
DRAC Bretagne
mailto:address@hidden
+33 (0)2 99 29 67 78




reply via email to

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