blob: f5ec011fde075d5c6f8332c88dd700dee7e896c3 [file] [log] [blame]
Index: PhrasePrefixQuery.java
===================================================================
RCS file: /home/cvspublic/jakarta-lucene/src/java/org/apache/lucene/search/PhrasePrefixQuery.java,v
retrieving revision 1.18
diff -u -r1.18 PhrasePrefixQuery.java
--- PhrasePrefixQuery.java 10 Oct 2004 15:27:15 -0000 1.18
+++ PhrasePrefixQuery.java 18 Jan 2005 22:29:16 -0000
@@ -96,7 +95,21 @@
termArrays.add(terms);
positions.addElement(new Integer(position));
}
-
+
+ public Query rewrite(IndexReader reader) throws IOException {
+ if (termArrays.size() == 1) { // optimize one-term case
+ Term[] terms = (Term[])termArrays.get(0);
+ BooleanQuery boq = new BooleanQuery();
+ for (int i=0; i<terms.length; i++) {
+ boq.add(new TermQuery(terms[i]), false, false);
+ }
+ boq.setBoost(getBoost());
+ return boq;
+ } else {
+ return this;
+ }
+ }
+
/**
* Returns the relative positions of terms in this phrase.
*/
@@ -227,15 +240,6 @@
}
protected Weight createWeight(Searcher searcher) {
- if (termArrays.size() == 1) { // optimize one-term case
- Term[] terms = (Term[])termArrays.get(0);
- BooleanQuery boq = new BooleanQuery();
- for (int i=0; i<terms.length; i++) {
- boq.add(new TermQuery(terms[i]), BooleanClause.Occur.SHOULD);
- }
- boq.setBoost(getBoost());
- return boq.createWeight(searcher);
- }
return new PhrasePrefixWeight(searcher);
}