You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by jb...@apache.org on 2016/04/29 16:53:50 UTC

lucene-solr:master: SOLR-9027: Pull the TermsEnum once for each segment

Repository: lucene-solr
Updated Branches:
  refs/heads/master 58ad591a6 -> 3d3c3fb5f


SOLR-9027: Pull the TermsEnum once for each segment


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/3d3c3fb5
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/3d3c3fb5
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/3d3c3fb5

Branch: refs/heads/master
Commit: 3d3c3fb5fc2db39f433c5f449d0bee81ef89a189
Parents: 58ad591
Author: jbernste <jb...@apache.org>
Authored: Fri Apr 29 11:00:10 2016 -0400
Committer: jbernste <jb...@apache.org>
Committed: Fri Apr 29 11:00:10 2016 -0400

----------------------------------------------------------------------
 .../solr/search/GraphTermsQParserPlugin.java    | 21 ++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/3d3c3fb5/solr/core/src/java/org/apache/solr/search/GraphTermsQParserPlugin.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/search/GraphTermsQParserPlugin.java b/solr/core/src/java/org/apache/solr/search/GraphTermsQParserPlugin.java
index 05a4c32..0df8f5e 100644
--- a/solr/core/src/java/org/apache/solr/search/GraphTermsQParserPlugin.java
+++ b/solr/core/src/java/org/apache/solr/search/GraphTermsQParserPlugin.java
@@ -283,19 +283,21 @@ public class GraphTermsQParserPlugin extends QParserPlugin {
                                     Term[] queryTerms) throws IOException {
       TermsEnum termsEnum = null;
       for (LeafReaderContext context : leaves) {
-        final Fields fields = context.reader().fields();
+
+        Terms terms = context.reader().terms(this.field);
+        if (terms == null) {
+          // field does not exist
+          continue;
+        }
+
+        termsEnum = terms.iterator();
+
+        if (termsEnum == TermsEnum.EMPTY) continue;
+
         for (int i = 0; i < queryTerms.length; i++) {
           Term term = queryTerms[i];
           TermContext termContext = contextArray[i];
-          final Terms terms = fields.terms(term.field());
-          if (terms == null) {
-            // field does not exist
-            continue;
-          }
-          termsEnum = terms.iterator();
-          assert termsEnum != null;
 
-          if (termsEnum == TermsEnum.EMPTY) continue;
           if (termsEnum.seekExact(term.bytes())) {
             if (termContext == null) {
               contextArray[i] = new TermContext(reader.getContext(),
@@ -305,7 +307,6 @@ public class GraphTermsQParserPlugin extends QParserPlugin {
               termContext.register(termsEnum.termState(), context.ord,
                   termsEnum.docFreq(), termsEnum.totalTermFreq());
             }
-
           }
         }
       }