lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Brian Pontarelli <br...@pontarelli.com>
Subject Strange issue with String vs. Query
Date Thu, 25 Mar 2010 23:04:09 GMT
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




Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message