mirror of https://github.com/apache/lucene.git
LUCENE-3238: make MTQ.rewrite final, and merge test
git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1139465 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
7574f33abe
commit
bd4a05c8cd
|
@ -503,6 +503,13 @@ Changes in backwards compatibility policy
|
||||||
overridden one of these methods, cut over to the non-deprecated
|
overridden one of these methods, cut over to the non-deprecated
|
||||||
implementation. (Uwe Schindler, Robert Muir, Yonik Seeley)
|
implementation. (Uwe Schindler, Robert Muir, Yonik Seeley)
|
||||||
|
|
||||||
|
* LUCENE-3238: Made MultiTermQuery.rewrite() final, to prevent
|
||||||
|
problems (such as not properly setting rewrite methods, or
|
||||||
|
not working correctly with things like SpanMultiTermQueryWrapper).
|
||||||
|
To rewrite to a simpler form, instead return a simpler enum
|
||||||
|
from getEnum(IndexReader). For example, to rewrite to a single term,
|
||||||
|
return a SingleTermEnum. (ludovic Boutros, Uwe Schindler, Robert Muir)
|
||||||
|
|
||||||
Changes in runtime behavior
|
Changes in runtime behavior
|
||||||
|
|
||||||
* LUCENE-2834: the hash used to compute the lock file name when the
|
* LUCENE-2834: the hash used to compute the lock file name when the
|
||||||
|
@ -555,6 +562,10 @@ Bug fixes
|
||||||
failing to measure the space required to hold the term's field and
|
failing to measure the space required to hold the term's field and
|
||||||
text character data. (Mike McCandless)
|
text character data. (Mike McCandless)
|
||||||
|
|
||||||
|
* LUCENE-3238: Fixed bug where using WildcardQuery("prefix*") inside
|
||||||
|
of a SpanMultiTermQueryWrapper rewrote incorrectly and returned
|
||||||
|
an error instead. (ludovic Boutros, Uwe Schindler, Robert Muir)
|
||||||
|
|
||||||
API Changes
|
API Changes
|
||||||
|
|
||||||
* LUCENE-3208: Renamed protected IndexSearcher.createWeight() to expert
|
* LUCENE-3208: Renamed protected IndexSearcher.createWeight() to expert
|
||||||
|
|
|
@ -301,8 +301,13 @@ public abstract class MultiTermQuery extends Query {
|
||||||
numberOfTerms += inc;
|
numberOfTerms += inc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* To rewrite to a simpler form, instead return a simpler
|
||||||
|
* enum from {@link #getTermsEnum(Terms, AttributeSource)}. For example,
|
||||||
|
* to rewrite to a single term, return a {@link SingleTermsEnum}
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Query rewrite(IndexReader reader) throws IOException {
|
public final Query rewrite(IndexReader reader) throws IOException {
|
||||||
return rewriteMethod.rewrite(reader, this);
|
return rewriteMethod.rewrite(reader, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -72,6 +72,14 @@ public class TestSpanMultiTermQueryWrapper extends LuceneTestCase {
|
||||||
assertEquals(1, searcher.search(sfq, 10).totalHits);
|
assertEquals(1, searcher.search(sfq, 10).totalHits);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testPrefix() throws Exception {
|
||||||
|
WildcardQuery wq = new WildcardQuery(new Term("field", "extrem*"));
|
||||||
|
SpanQuery swq = new SpanMultiTermQueryWrapper<WildcardQuery>(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 {
|
public void testFuzzy() throws Exception {
|
||||||
FuzzyQuery fq = new FuzzyQuery(new Term("field", "broan"));
|
FuzzyQuery fq = new FuzzyQuery(new Term("field", "broan"));
|
||||||
SpanQuery sfq = new SpanMultiTermQueryWrapper<FuzzyQuery>(fq);
|
SpanQuery sfq = new SpanMultiTermQueryWrapper<FuzzyQuery>(fq);
|
||||||
|
|
Loading…
Reference in New Issue