> <search:fieldquery
field="xxx" term="coucou"/>
ca , ca signifie qu'on a déjà parsé
l'attribut query contenant "coucou les"
et qu'on a trouvé le term
coucou..
la question est: Quand avons nous fait
cette operation ? j'imagine avant de lancer le transformer,.. justement pour
créer le fragment xml
le tag fulltextquery repond juste
au besoin d'une recherche fulltext (avec un seul champs de saisie)
et ne peut être une combinaison de
fieldquery sans parser au préalable la valeur de ce champs de
saisie..
sans parser cette query_string, un truc
comme :
<group op=and>
<fieldquery field="xxx" term="coucou
les">
<fieldquery field="yy" term="coucou
les">
</group>
est différent de :
<fulltextquery query="coucou les"
op="MYOPERATUR">
<field id="xxx">
<field id="yyy">
mais si on parse et qu'on releve les termes , alors
rien n'empeche de faire un truc comme ca, effectivement bien egal au tag
fulltextquery du dessus:
<group op="MYOPERATUR">
<group op=or>
<fieldquery field="xxx"
term="coucou">
<fieldquery field="yy"
term="coucou">
</group>
<group op=or>
<fieldquery field="xxx"
term="les">
<fieldquery field="yy"
term="les">
</group>
</group>
OR je ne veux pas qu'on soit obliger d'analyzer en
amons les query string pour créer une requete répondant au
besoin d'une recherche fulltext par une combinaison de search:fieldquery
d'ou le tag fulltextquery..
pour ce tag , j'ai un parser spécial..
modifié du QueryParser..
qui, au lieu de me créer une query par term
rencontré, ..me duplique la query en changeant le champ et ceci au tant de
fois qu'il ya de champs recherchés.
parser query_string-> term identifié (ex:
"les" a été identifé comme un fieldquery)-> pour chaque champs recherché.. :
je crée une query avec ce champs (A=new
FieldQuery(xxx, les)) et B=new FieldQuery(yyy,les)
et encapsule tout ca dans un booleanquery..si plusieurs query:
(ex bQuery.add( A), bQuery.add(b))
pour l'extension de requete, oui c'est un truc du
genre dans SDX
><search:fieldquery field="xxx"
"term="coucou">
> <search:expand file="url" levelup="0"
leveldown="5">
> <search:expansion
type="synonyms"/>
> <search:expansion
type="specific"/>
>
</search:expand>
></search:fieldquery>
disons que mon truc répond juste un petit besoin de filtrer par categorie
>Ici, il y a une question de fond : est-ce que ce tri se fait "à la SDX"
>en profitant des champs "stored" ou est-ce qu'il y a un mécansime qui
>permet de récupérer n'importe quel champ pour en faire une clé de tri ?
>J'ai démontré que, moyennant des petits patches à Lucene, c'était
>possible. Il n'est même pas impossible que les récents développements de
>Lucene suppriment le bseoin de patcher.
j'avoue que c'est fait "à l'arache.." en utilisant les stored..
mais si il est possible de faire mieux .. je suis preneur.. !
>Voilà
pour les premières réactions : comptez vous également implémenter
>des
PhraseQuery (ou la position des termes est importante) et des
>FuzzyQuery
?
hmm pour moi c'est compri dans la fieldquery
qui utilise le parser lucene et donc peut tout faire
ainsi un truc du genre <fieldquery query='~cocou coc*"
defaulfield="nico"> marche
cette nuit j'ai fait aussi un grand
pas.
maintenant on peut faire soit:
<search:query >
.<goup op="and">
<fulltextquery query="coco">
<field id="coco">
<field id="coco2">
</search:query>
creation d'une nouvelle requete
ou <searchquery id="23">
.<goup op="and">
<fulltextquery query="coco">
<field id="coco">
<field id="coco2">
.</goup>
filtre sur la requete n°23 (utilisation d'un cache session et d'un
queryfilter )
que ca me créer un query n° 24
a noter que si je fais
ou <searchquery id="24">
.<goup op="and">
<fulltextquery query="coco">
<field id="coco">
<field id="coco2">
ca prend la query de base (n° 23) et ca ajoute les 2 filtres (filtre de la
query 23, et le nouveau)
d'ou l'utilisation du cache de la queryfilter 23 et donc ca va plus
vite..
----------------
(google : java channel pharos)
----------------
----- Original Message -----
Sent: Wednesday, October 01, 2003 10:36 AM
Subject: Re: [sdx-developers] SearchTransformer
Bonjour,
Nicolas
Maisonneuve a écrit:
> <search:lucenequery defaultfield="xxx"
query="coucou les type:amis"
> boost="3" defaultop="or"/>
>
= (xxx:coucou xxx:les type:amis)^3
OK.
> 2-
>
<search:fulltextquery query="coucou les" defaultop="and">
>
</search:field id="xxx" boost="2">
> </search:field id="yyy"
boost="3">
> </search:fulltextquery>
> = (xxx:coucou^2
yyy:coucou^3) +(xxx:les^2 yyy:les^3)
Ici, j'ai plus de mal. On a
apparemment une fieldQuery (SDX) / termQuery
(Lucene). Pourquoi dans ce cas,
ne pas préférer :
<search:fieldquery field="xxx"
term="coucou"/>
... et mettre les 2 dans un <searchgroup
operator="and"/> ?
> 3-
> <search:facetquery
id="mycategorie" keyword="motcle">
> va voir dans une ontologie (source
: fichier.owl) et fait une expansion du
> mot clé
> meme style que
votre expandQuery ..
> avec ces requetes unitaire , on
faire faire des combinaisons du style :
>
> -
<search:query>
> - <search:group op="and">
> -
<search:group op="and">
> <search:facetquery
id="matiers" keyword="topologie" />
> <search:facetquery
id="matiers" keyword="anglais" />
>
</search:group>
> - <search:fulltextquery
query="">
> <search:field id="line" boost="2"
/>
> <search:field id="speaker"
/>
> </search:fulltextquery>
>
</search:group>
> </search:query>
OK pour
la notion de groupe :-)
> <search:sortfield name="matier"/>
<-- possibilité de trier par ce champs
Ici, il y a une question de
fond : est-ce que ce tri se fait "à la SDX"
en profitant des champs "stored"
ou est-ce qu'il y a un mécansime qui
permet de récupérer n'importe quel
champ pour en faire une clé de tri ?
J'ai démontré que, moyennant des petits
patches à Lucene, c'était
possible. Il n'est même pas impossible que les
récents développements de
Lucene suppriment le bseoin de
patcher.
Voilà pour les premières réactions : comptez vous également
implémenter
des PhraseQuery (ou la position des termes est importante) et
des
FuzzyQuery ?
A+
--
Pierrick Brihaye,
informaticien
Service régional de l'Inventaire
DRAC Bretagne
mailto:address@hidden
_______________________________________________
sdx-developers
mailing list
address@hidden
http://mail.nongnu.org/mailman/listinfo/sdx-developers