You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ha...@apache.org on 2013/06/16 16:44:33 UTC

svn commit: r1493517 - in /lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/temp: TempBlockTermsWriter.java TempPostingsWriter.java

Author: han
Date: Sun Jun 16 14:44:33 2013
New Revision: 1493517

URL: http://svn.apache.org/r1493517
Log:
LUCENE-3069: setField now expose per-field info to term dict

Modified:
    lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/temp/TempBlockTermsWriter.java
    lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/temp/TempPostingsWriter.java

Modified: lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/temp/TempBlockTermsWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/temp/TempBlockTermsWriter.java?rev=1493517&r1=1493516&r2=1493517&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/temp/TempBlockTermsWriter.java (original)
+++ lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/temp/TempBlockTermsWriter.java Sun Jun 16 14:44:33 2013
@@ -496,6 +496,7 @@ public class TempBlockTermsWriter extend
 
   class TermsWriter extends TermsConsumer {
     private final FieldInfo fieldInfo;
+    private final int longsSize;
     private long numTerms;
     long sumTotalTermFreq;
     long sumDocFreq;
@@ -856,8 +857,7 @@ public class TempBlockTermsWriter extend
 
       int termCount;
 
-      final int size = postingsWriter.longsSize();
-      long[] lastLongs = new long[size];
+      long[] lastLongs = new long[longsSize];
       Arrays.fill(lastLongs, 0);
 
       if (isLeafBlock) {
@@ -884,7 +884,7 @@ public class TempBlockTermsWriter extend
           }
 
           // Write term meta data
-          for (int pos = 0; pos < size; pos++) {
+          for (int pos = 0; pos < longsSize; pos++) {
             assert term.longs[pos] >= 0;
             metaWriter.writeVLong(term.longs[pos] - lastLongs[pos]);
           }
@@ -926,7 +926,7 @@ public class TempBlockTermsWriter extend
             // separate anymore:
 
             // Write term meta data
-            for (int pos = 0; pos < size; pos++) {
+            for (int pos = 0; pos < longsSize; pos++) {
               assert term.longs[pos] >= 0;
               metaWriter.writeVLong(term.longs[pos] - lastLongs[pos]);
             }
@@ -1014,7 +1014,7 @@ public class TempBlockTermsWriter extend
                                          PackedInts.COMPACT,
                                          true, 15);
 
-      postingsWriter.setField(fieldInfo);
+      this.longsSize = postingsWriter.setField(fieldInfo);
     }
     
     @Override
@@ -1046,7 +1046,7 @@ public class TempBlockTermsWriter extend
 
       blockBuilder.add(Util.toIntsRef(text, scratchIntsRef), noOutputs.getNoOutput());
 
-      long[] longs = new long[postingsWriter.longsSize()];
+      long[] longs = new long[longsSize];
       postingsWriter.finishTerm(longs, metaWriter, stats);
       byte[] bytes = new byte[(int)metaWriter.getFilePointer()];
       metaWriter.writeTo(bytes, 0);
@@ -1093,7 +1093,7 @@ public class TempBlockTermsWriter extend
                                      sumTotalTermFreq,
                                      sumDocFreq,
                                      docCount,
-                                     postingsWriter.longsSize()));
+                                     longsSize));
       } else {
         assert sumTotalTermFreq == 0 || fieldInfo.getIndexOptions() == IndexOptions.DOCS_ONLY && sumTotalTermFreq == -1;
         assert sumDocFreq == 0;

Modified: lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/temp/TempPostingsWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/temp/TempPostingsWriter.java?rev=1493517&r1=1493516&r2=1493517&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/temp/TempPostingsWriter.java (original)
+++ lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/temp/TempPostingsWriter.java Sun Jun 16 14:44:33 2013
@@ -198,13 +198,18 @@ public final class TempPostingsWriter ex
   // nocommit better name?
 
   @Override
-  public void setField(FieldInfo fieldInfo) {
+  public int setField(FieldInfo fieldInfo) {
     IndexOptions indexOptions = fieldInfo.getIndexOptions();
     fieldHasFreqs = indexOptions.compareTo(IndexOptions.DOCS_AND_FREQS) >= 0;
     fieldHasPositions = indexOptions.compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS) >= 0;
     fieldHasOffsets = indexOptions.compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS) >= 0;
     fieldHasPayloads = fieldInfo.hasPayloads();
     skipWriter.setField(fieldHasPositions, fieldHasOffsets, fieldHasPayloads);
+    if (fieldHasPositions) {
+      return 3;  // doc + pos + pay FP
+    } else {
+      return 1;  // docFP
+    }
   }
 
   @Override
@@ -350,14 +355,6 @@ public final class TempPostingsWriter ex
     }
   }
 
-  public int longsSize() {
-    if (fieldHasPositions) {
-      return 3;  // doc + pos + pay FP
-    } else {
-      return 1;  // docFP
-    }
-  }
-
   // nocommit explain about the "don't care" values
 
   /** Called when we are done adding docs to this term */