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, [EMAIL PROTECTED] 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: [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]