lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Erik Hatcher <e...@ehatchersolutions.com>
Subject Re: FilteredQuery bug
Date Sat, 08 May 2004 15:18:26 GMT
I suppose the actual bug error message would be handy too:


java.lang.UnsupportedOperationException
	at org.apache.lucene.search.Query.createWeight(Query.java:78)
	at  
org.apache.lucene.search.FilteredQuery.createWeight(FilteredQuery.java: 
60)
	at org.apache.lucene.search.Query.weight(Query.java:85)
	at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:86)
	at org.apache.lucene.search.Hits.getMoreDocs(Hits.java:64)
	at org.apache.lucene.search.Hits.<init>(Hits.java:43)
	at org.apache.lucene.search.Searcher.search(Searcher.java:33)
	at org.apache.lucene.search.Searcher.search(Searcher.java:27)
	at  
org.apache.lucene.search.TestFilteredQuery.testRangeQuery(TestFilteredQu 
ery.java:126)


On May 8, 2004, at 11:15 AM, Erik Hatcher wrote:

> In my toying with FilteredQuery, I've found a bug.  I've added a test  
> case (with a commented out hacked fix) to TestFilteredQuery.
>
> A Query.rewrite is needed somewhere, although I'm not sure the best  
> place for it.  Should FilteredQuery override rewrite?  Or should it  
> simply rewrite the nested Query in the constructor?  Or another  
> possibility?
>
> FilteredQuery is cool... although my head is spinning with  
> QueryFilter, FilteredQuery, and Filter (as well as the completely  
> unrelated TokenFilter).  I'm still trying to work out a compelling  
> example of why you'd use FilteredQuery over the other options - I'd  
> love to see how it is being used.
>
> 	Erik
>
>
> On May 8, 2004, at 11:06 AM, ehatcher@apache.org wrote:
>
>> ehatcher    2004/05/08 08:06:19
>>
>>   Modified:    src/test/org/apache/lucene/search  
>> TestFilteredQuery.java
>>   Log:
>>   expected, then actual :)  also, uncovered a bug in FilteredQuery, a  
>> rewrite is needed somewhere
>>
>>   Revision  Changes    Path
>>   1.2       +21 -9      
>> jakarta-lucene/src/test/org/apache/lucene/search/ 
>> TestFilteredQuery.java
>>
>>   Index: TestFilteredQuery.java
>>   ===================================================================
>>   RCS file:  
>> /home/cvs/jakarta-lucene/src/test/org/apache/lucene/search/ 
>> TestFilteredQuery.java,v
>>   retrieving revision 1.1
>>   retrieving revision 1.2
>>   diff -u -r1.1 -r1.2
>>   --- TestFilteredQuery.java	21 Apr 2004 19:18:44 -0000	1.1
>>   +++ TestFilteredQuery.java	8 May 2004 15:06:19 -0000	1.2
>>   @@ -95,24 +95,36 @@
>>      throws Exception {
>>        Query filteredquery = new FilteredQuery (query, filter);
>>        Hits hits = searcher.search (filteredquery);
>>   -    assertEquals (hits.length(), 1);
>>   -    assertEquals (hits.id(0), 1);
>>   +    assertEquals (1, hits.length());
>>   +    assertEquals (1, hits.id(0));
>>
>>        hits = searcher.search (filteredquery, new Sort("sorter"));
>>   -    assertEquals (hits.length(), 1);
>>   -    assertEquals (hits.id(0), 1);
>>   +    assertEquals (1, hits.length());
>>   +    assertEquals (1, hits.id(0));
>>
>>        filteredquery = new FilteredQuery (new TermQuery (new Term  
>> ("field", "one")), filter);
>>        hits = searcher.search (filteredquery);
>>   -    assertEquals (hits.length(), 2);
>>   +    assertEquals (2, hits.length());
>>
>>        filteredquery = new FilteredQuery (new TermQuery (new Term  
>> ("field", "x")), filter);
>>        hits = searcher.search (filteredquery);
>>   -    assertEquals (hits.length(), 1);
>>   -    assertEquals (hits.id(0), 3);
>>   +    assertEquals (1, hits.length());
>>   +    assertEquals (3, hits.id(0));
>>
>>        filteredquery = new FilteredQuery (new TermQuery (new Term  
>> ("field", "y")), filter);
>>        hits = searcher.search (filteredquery);
>>   -    assertEquals (hits.length(), 0);
>>   +    assertEquals (0, hits.length());
>>      }
>>   +
>>   +  public void testRangeQuery() throws Exception {
>>   +    RangeQuery rq = new RangeQuery(
>>   +        new Term("sorter", "b"), new Term("sorter", "d"), true);
>>   +
>>   +    // rq = rq.rewrite(searcher.reader) // makes the test pass
>>   +
>>   +    Query filteredquery = new FilteredQuery(rq, filter);
>>   +    Hits hits = searcher.search(filteredquery);
>>   +    assertEquals(2, hits.length());
>>   +  }
>>   +
>>    }
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: lucene-dev-unsubscribe@jakarta.apache.org
>> For additional commands, e-mail: lucene-dev-help@jakarta.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: lucene-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: lucene-dev-help@jakarta.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: lucene-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: lucene-dev-help@jakarta.apache.org


Mime
View raw message