Yeah. I was thinking about of those. I don't want to upgrade as it is in 
production. I can't get a test case that reproduces the issue for some reason. 
I might need the production data set to test with.

I'll definitely try an explain and see what the heck is going on.

For now, I just reverted to a String search and everything is good again. Not a 
huge fan, but the change was fast and worked. I definitely think that the Query 
from  QueryParser doesn't seem to mix well with BooleanQuery, which again seems 
odd.

Thanks for the reply.

-bp

On Mar 26, 2010, at 6:07 AM, Ian Lea wrote:

> Odd.  Query.toString() and back to Query via parser are not guaranteed
> to be consistent but it looks pretty straightforward in this case.
> 
> Maybe Searcher.explain would give a clue.  Or post a minimal
> self-contained program or test case that demonstrates this.  Or try a
> later version of lucene.
> 
> 
> --
> Ian.
> 
> 
> On Thu, Mar 25, 2010 at 11:04 PM, Brian Pontarelli <br...@pontarelli.com> 
> wrote:
>> I'm new to the list and I'm having an issue that I wanted to ask about 
>> quick. I'm using Lucene version 2.4.1
>> 
>> I recently rewrote a query to use the Query classes rather than a String and 
>> QueryParser. The search results between the two queries are now in different 
>> orders while the number of results are the same. I have one caveat with my 
>> change, I still use QueryParser for part of it so that I can easily handle 
>> quoting.
>> 
>> Here's some pseudo code:
>> 
>> Old Way
>> QueryParser parser = new QueryParser("words", analyzer);
>> Query q = parser.parse("+words:(one two) +year:[1950 2010]");
>> System.out.println("Old query is " + q);
>> 
>> New Way
>> BooleanQuery q = new BooleanQuery();
>> QueryParser parser = new QueryParser("words", analyzer);
>> q.add(parser.parse("one two"), Occur.MUST);
>> q.add(new RangeQuery(new Term("year", 1950), new Term("year", 2010), true), 
>> Occur.MUST);
>> System.out.println("New query is " + q);
>> 
>> My first thought was that the queries were ending up actually being 
>> different queries. To verify, I do a toString on the two different queries 
>> and they are the same. That output is:
>> 
>> Old query is +(words:one words:two) +year:[1950 TO 2010]
>> New query is +(words:one words:two) +year:[1950 TO 2010]
>> 
>> So, I'm sorta stuck as to what to do next in order to figure this out. I'm 
>> thinking that it has to do with the QueryParser usage in my "New Way", but 
>> I'm not sure how that would effect the ordering.
>> 
>> Anyone have experience with this or other things I can try?
>> 
>> Thanks,
>> -bp
>> 
>> 
>> 
>> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
> For additional commands, e-mail: java-user-h...@lucene.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-user-h...@lucene.apache.org

Reply via email to