You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by us...@apache.org on 2010/10/21 15:02:09 UTC

svn commit: r1025984 - /lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/search/MultiTermQuery.java

Author: uschindler
Date: Thu Oct 21 13:02:09 2010
New Revision: 1025984

URL: http://svn.apache.org/viewvc?rev=1025984&view=rev
Log:
Also remove the useless counting in MTQ on 3.x

Modified:
    lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/search/MultiTermQuery.java

Modified: lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/search/MultiTermQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/search/MultiTermQuery.java?rev=1025984&r1=1025983&r2=1025984&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/search/MultiTermQuery.java (original)
+++ lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/search/MultiTermQuery.java Thu Oct 21 13:02:09 2010
@@ -99,24 +99,17 @@ public abstract class MultiTermQuery ext
 
   private abstract static class BooleanQueryRewrite extends RewriteMethod {
   
-    protected final int collectTerms(IndexReader reader, MultiTermQuery query, TermCollector collector) throws IOException {
+    protected final void collectTerms(IndexReader reader, MultiTermQuery query, TermCollector collector) throws IOException {
       final FilteredTermEnum enumerator = query.getEnum(reader);
-      int count = 0;
       try {
         do {
-          Term t = enumerator.term();
-          if (t != null) {
-            if (collector.collect(t, enumerator.difference())) {
-              count++;
-            } else {
-              break;
-            }
-          }
+          final Term t = enumerator.term();
+          if (t == null || !collector.collect(t, enumerator.difference()))
+            break;
         } while (enumerator.next());    
       } finally {
         enumerator.close();
       }
-      return count;
     }
     
     protected interface TermCollector {
@@ -130,14 +123,15 @@ public abstract class MultiTermQuery ext
     @Override
     public Query rewrite(final IndexReader reader, final MultiTermQuery query) throws IOException {
       final BooleanQuery result = new BooleanQuery(true);
-      query.incTotalNumberOfTerms(collectTerms(reader, query, new TermCollector() {
+      collectTerms(reader, query, new TermCollector() {
         public boolean collect(Term t, float boost) {
           TermQuery tq = new TermQuery(t); // found a match
           tq.setBoost(query.getBoost() * boost); // set the boost
           result.add(tq, BooleanClause.Occur.SHOULD); // add to query
           return true;
         }
-      }));
+      });
+      query.incTotalNumberOfTerms(result.clauses().size());
       return result;
     }