This indeed fixes the bug that the code further below demonstrates, so
I'm comitting it.

http://issues.apache.org/bugzilla/show_bug.cgi?id=24665

Otis

--- Otis Gospodnetic <[EMAIL PROTECTED]> wrote:
> I have a feeling that query escaping really is broken in Lucene.
> Try running the class below like this:
> 
> prompt> java Escaper '+string' '\+string'
> 
> I get:
> 
> $ java Escaper '+string' '\+string'
> 0: +string
> 1: \+string
> QUERY: \+string
> HITS: 0
> 
> That should give me 1 hit, shouldn't it?
> 
> import org.apache.lucene.queryParser.QueryParser;
> import org.apache.lucene.analysis.*;
> import org.apache.lucene.search.*;
> import org.apache.lucene.index.*;
> import org.apache.lucene.store.*;
> import org.apache.lucene.document.*;
> 
> public class Escaper
> {
>     public static void main(String[] args) throws Exception
>     {
>         System.out.println("0: " + args[0]);
>         System.out.println("1: " + args[1]);
>         
>         Directory dir = new RAMDirectory();
>         IndexWriter writer = new IndexWriter(dir, new
> WhitespaceAnalyzer(), true);
>         Document doc = new Document();
>         doc.add(Field.Text("text", args[0]));
>         writer.addDocument(doc);
>         writer.optimize();
>         writer.close();
> 
>         QueryParser qp = new QueryParser("text", new
> WhitespaceAnalyzer());
>         Query q = qp.parse(args[1]);
>         System.out.println("QUERY: " + q.toString("text"));
> 
>         IndexSearcher searcher = new IndexSearcher(dir);
>         Hits hits = searcher.search(q);
>         System.out.println("HITS: " + hits.length());
>         searcher.close();
>     }
> }
> 
> Thanks,
> Otis
> 
> 
> --- Jean-Francois Halleux <[EMAIL PROTECTED]> wrote:
> > Hello,
> > 
> >     in TestQueryParser, method testEscaped(), I see the following:
> > 
> > ...
> > assertQueryEquals("\\+blah", a, "\\+blah");
> > assertQueryEquals("\\(blah", a, "\\(blah");
> > 
> > assertQueryEquals("\\-blah", a, "\\-blah");
> > assertQueryEquals("\\!blah", a, "\\!blah");
> > assertQueryEquals("\\{blah", a, "\\{blah");
> > assertQueryEquals("\\}blah", a, "\\}blah");
> > ...
> > 
> > is this really the expected behavior? Shouldn't \\-blah be
> > interpreted
> > as -blah and \\!blah as !blah ?
> > 
> > Thanks,
> > 
> > Jean-Francois Halleux
> > 
> > 
> >
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> > 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to