| 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); |
| } |
| |