Index: lucene/src/test/org/apache/lucene/search/spans/TestSpanMultiTermQueryWrapper.java =================================================================== --- lucene/src/test/org/apache/lucene/search/spans/TestSpanMultiTermQueryWrapper.java (révision 1138757) +++ lucene/src/test/org/apache/lucene/search/spans/TestSpanMultiTermQueryWrapper.java (copie de travail) @@ -73,6 +73,14 @@ assertEquals(1, searcher.search(sfq, 10).totalHits); } + public void testPrefix() throws Exception { + WildcardQuery wq = new WildcardQuery(new Term("field", "extrem*")); + SpanQuery swq = new SpanMultiTermQueryWrapper(wq); + // will only match "jumps over extremely very lazy broxn dog" + SpanFirstQuery sfq = new SpanFirstQuery(swq, 3); + assertEquals(1, searcher.search(sfq, 10).totalHits); + } + public void testFuzzy() throws Exception { FuzzyQuery fq = new FuzzyQuery(new Term("field", "broan")); SpanQuery sfq = new SpanMultiTermQueryWrapper(fq); Index: lucene/src/java/org/apache/lucene/search/WildcardQuery.java =================================================================== --- lucene/src/java/org/apache/lucene/search/WildcardQuery.java (révision 1138757) +++ lucene/src/java/org/apache/lucene/search/WildcardQuery.java (copie de travail) @@ -72,7 +72,7 @@ .substring(0, term.text().indexOf('*')))); rewritten.setBoost(getBoost()); rewritten.setRewriteMethod(getRewriteMethod()); - return rewritten; + return rewritten.rewrite(reader); } else { return super.rewrite(reader); }