[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE : RE : RE : [sdx-developers] Changements récents
From: |
Rasik Pandey |
Subject: |
RE : RE : RE : [sdx-developers] Changements récents |
Date: |
Mon, 24 May 2004 17:02:37 +0200 |
Salut,
> > Justement je voulais garder DefaultQueryParser parce que je
> pensais que c'était plus facile à synchroniser (à la main) avec
> le QueryParser.jj de Lucene que
> ZeroPositionIncrementQueryParser. Mais ça se discute....peut-
> être on pourrait mieux factoriser ton code dans
> ZeroPositionIncrementQueryParser (hors la méthode
> getFieldQuery) pour le rendre plus facile à synchroniser à la
> main, puis on vire DefaultQueryParser???
>
> Aucun problème !
:)
> > Pour l'instant on déplace UnanalyzedQuery vers
> fr.gouv.culture.sdx.lucene.query.UnanalyzedQuery et donc on
> change les QueryParser(s) pour utiliser cette classe.
>
> Moi je veux bien mais avant de faire le refactoring, j'aurais
> souhaité
> que les archives Lucene aient :
>
> 1) un patch avec une UnanalyzedQuery. Je suis à peu près
> certain qu'il y
> a un besoin réel dans ce domaine et que la syntaxe employée est
> acceptable (vérifier tout de même que l'on peut escaper le
> "|"). Si ça
> embraye... je veux bien patcher la doc et les tests :-)
>
> 2) un patch avec le ZeropositionIncrementQueryParser (dans la
> veine de
> http://issues.apache.org/bugzilla/show_bug.cgi?id=23307). Ici
> encore, on
> pourrait également patcher les tests.
>
+1
Si tu va travailler avec les QueryParsers, il va falloir mettre à jour celui
qu'on va garder:
1.43 +27 -5
jakarta-lucene/src/java/org/apache/lucene/queryParser/QueryParser.jj
Index: QueryParser.jj
===================================================================
RCS file:
/home/cvs/jakarta-lucene/src/java/org/apache/lucene/queryParser/QueryParser.jj,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -r1.42 -r1.43
--- QueryParser.jj 24 Mar 2004 10:12:27 -0000 1.42
+++ QueryParser.jj 22 May 2004 17:34:31 -0000 1.43
@@ -285,6 +285,26 @@
}
/**
+ * Base implementation delegates to address@hidden
#getFieldQuery(String,Analyzer,String)}.
+ * This method may be overridden, for example, to return
+ * a SpanNearQuery instead of a PhraseQuery.
+ *
+ * @exception ParseException throw in overridden method to disallow
+ */
+ protected Query getFieldQuery(String field,
+ Analyzer analyzer,
+ String queryText,
+ int slop) throws ParseException {
+ Query query = getFieldQuery(field, analyzer, queryText);
+
+ if (query instanceof PhraseQuery) {
+ ((PhraseQuery) query).setSlop(slop);
+ }
+
+ return query;
+ }
+
+ /**
* @exception ParseException throw in overridden method to disallow
*/
protected Query getRangeQuery(String field,
@@ -655,15 +675,17 @@
[ slop=<SLOP> ]
[ <CARAT> boost=<NUMBER> ]
{
- q = getFieldQuery(field, analyzer,
- term.image.substring(1, term.image.length()-1));
- if (slop != null && q instanceof PhraseQuery) {
+ int s = phraseSlop;
+
+ if (slop != null) {
try {
- int s = Float.valueOf(slop.image.substring(1)).intValue();
- ((PhraseQuery) q).setSlop(s);
+ s = Float.valueOf(slop.image.substring(1)).intValue();
}
catch (Exception ignored) { }
}
+ q = getFieldQuery(field, analyzer,
+ term.image.substring(1, term.image.length()-1),
+ s);
}
)
{
Rasik