[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: RE : RE : [sdx-developers] Les queries
From: |
Pierrick Brihaye |
Subject: |
Re: RE : RE : [sdx-developers] Les queries |
Date: |
Thu, 11 Sep 2003 16:22:14 +0200 |
User-agent: |
Mozilla/5.0 (Windows; U; Win98; fr-FR; rv:1.0.2) Gecko/20030208 Netscape/7.02 |
Re,
Rasik Pandey a écrit:
<sdx:query type="field" engine="lucene" luceneQuery="alidade"
escapedLuceneQuery="alidade" text="alidade" escapedText="alidade"
field="contenu"/>
Les attributs "type" et "text" ne sont pas utiles?
En fait... si :-)
Prenons l'exemple d'une simpleQuery.
toit:|ciment en couverture|
<sdx:query type="simple" engine="lucene" luceneQuery="toit:ciment en
couverture" escapedLuceneQuery="toit%3Aciment+en+couverture"
text="toit:|ciment en couverture|"
escapedText="toit%3A%7Cciment+en+couverture%7C" op="or"/>
La LuceneQuery ne m'intéresse pas (par reparsable), c'est text qui
m'intéresse :-)
toit:ciment en couverture
<sdx:query type="simple" engine="lucene" luceneQuery="toit:ciment
couverture" escapedLuceneQuery="toit%3Aciment+couverture"
text="toit:ciment en couverture"
escapedText="toit%3Aciment+en+couverture" op="or"/>
Même si luceneQuery est bonne, je préfère encore le texte :-)
Maintenant, une fieldQuery :
field=toit
value=ciment en couverture
<sdx:query type="field" engine="lucene" luceneQuery="ciment en
couverture" escapedLuceneQuery="ciment+en+couverture" text="ciment en
couverture" escapedText="ciment+en+couverture" field="toit"/>
Ici, à cause du toString("toit"), la LuceneQuery ne me convient pas. Le
text non plus car, si on veut reparser, il faudrait les "|".
Bien sûr,
field=toit
value=|ciment en couverture| ne aucun résultat mais :
<sdx:query type="field" engine="lucene" luceneQuery="|ciment en
couverture|" escapedLuceneQuery="%7Cciment+en+couverture%7C"
text="|ciment en couverture|" escapedText="%7Cciment+en+couverture%7C"
field="toit"/>
luceneQuery et text me conviennent.
Moralité : il suffirait de peu de choses pour que text soit bon tout le
temps, ce qui veut dire que l'on peut se passer de LuceneQuery :-)
Plus sérieusement, entre une solution tout SDX (comme celle décrite plus
haut) et une solution qui consisterait à patcher Lucene, il y a
peut-être un juste milieu. Les données sont les suivantes :
Dans le QueryParser, on a :
1) la définition de "tokens insécables" :
| <STRING: "|" (~["|"])+ "|">
2) le traitement de ces tokens :
| term=<STRING>
[ slop=<SLOP> ]
[ <CARAT> boost=<NUMBER> ]
{
q = getStringQuery(field,
term.image.substring(1, term.image.length()-1));
...
3) l'exploitation des tokens, considérés comme des termes, qui se fait
naturellement grâce à une TermQuery.
private Query getStringQuery(String field, String queryText) {
// check for nulls etc.
return new TermQuery(new Term(field, queryText));
}
Il serait donc intéressant que TermQuery.toString() soit capable de
retrouver le fait que le token soit insécable. Dans l'absolu, ce n'est
pas compliqué : si, passé dans l'analyseur le token est coupé, c'est
qu'il fauut ajouter des "|".
Ce qui me gêne dans cette affaire, c'est que l'on est obligé de mettre
en communication TermQuery et le QueryParser. Des idées ?
A+
--
Pierrick Brihaye, informaticien
Service régional de l'Inventaire
DRAC Bretagne
mailto:address@hidden
- [sdx-developers] Les queries, Pierrick Brihaye, 2003/09/11
- RE : [sdx-developers] Les queries, Rasik Pandey, 2003/09/11
- RE : [sdx-developers] Les queries, Martin Sevigny, 2003/09/11
- Re: RE : [sdx-developers] Les queries, Pierrick Brihaye, 2003/09/11
- RE : RE : [sdx-developers] Les queries, Rasik Pandey, 2003/09/11
- Re: RE : RE : [sdx-developers] Les queries, Pierrick Brihaye, 2003/09/11
- RE : RE : RE : [sdx-developers] Les queries, Rasik Pandey, 2003/09/11
- Re: RE : RE : [sdx-developers] Les queries, Pierrick Brihaye, 2003/09/11
- RE : RE : RE : [sdx-developers] Les queries, Rasik Pandey, 2003/09/11
- Re: RE : RE : [sdx-developers] Les queries, Pierrick Brihaye, 2003/09/11