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/08/19 14:30:24 UTC

svn commit: r1515387 - in /lucene/dev/branches/lucene3069/lucene: codecs/src/java/org/apache/lucene/codecs/temp/ core/src/java/org/apache/lucene/codecs/ core/src/java/org/apache/lucene/codecs/temp/

Author: han
Date: Mon Aug 19 12:30:24 2013
New Revision: 1515387

URL: http://svn.apache.org/r1515387
Log:
symmetric change on PostingsReaderBase

Modified:
    lucene/dev/branches/lucene3069/lucene/codecs/src/java/org/apache/lucene/codecs/temp/TempBlockTermsReader.java
    lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/TempPostingsReaderBase.java
    lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/temp/TempBlockTreeTermsReader.java
    lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/temp/TempFSTOrdTermsReader.java
    lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/temp/TempFSTTermsReader.java
    lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/temp/TempPostingsReader.java

Modified: lucene/dev/branches/lucene3069/lucene/codecs/src/java/org/apache/lucene/codecs/temp/TempBlockTermsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/lucene/codecs/src/java/org/apache/lucene/codecs/temp/TempBlockTermsReader.java?rev=1515387&r1=1515386&r2=1515387&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/lucene/codecs/src/java/org/apache/lucene/codecs/temp/TempBlockTermsReader.java (original)
+++ lucene/dev/branches/lucene3069/lucene/codecs/src/java/org/apache/lucene/codecs/temp/TempBlockTermsReader.java Mon Aug 19 12:30:24 2013
@@ -831,12 +831,11 @@ public class TempBlockTermsReader extend
 
           // lazily catch up on metadata decode:
           final int limit = state.termBlockOrd;
+          boolean absolute = metaDataUpto == 0;
           // We must set/incr state.termCount because
           // postings impl can look at this
           state.termBlockOrd = metaDataUpto;
-          if (metaDataUpto == 0) {
-            Arrays.fill(longs, 0);
-          }
+          
           // TODO: better API would be "jump straight to term=N"???
           while (metaDataUpto < limit) {
             //System.out.println("  decode mdUpto=" + metaDataUpto);
@@ -858,11 +857,12 @@ public class TempBlockTermsReader extend
             }
             // metadata
             for (int i = 0; i < longs.length; i++) {
-              longs[i] += bytesReader.readVLong();
+              longs[i] = bytesReader.readVLong();
             }
-            postingsReader.decodeTerm(longs, bytesReader, fieldInfo, state);
+            postingsReader.decodeTerm(longs, bytesReader, fieldInfo, state, absolute);
             metaDataUpto++;
             state.termBlockOrd++;
+            absolute = false;
           }
         } else {
           //System.out.println("  skip! seekPending");

Modified: lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/TempPostingsReaderBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/TempPostingsReaderBase.java?rev=1515387&r1=1515386&r2=1515387&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/TempPostingsReaderBase.java (original)
+++ lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/TempPostingsReaderBase.java Mon Aug 19 12:30:24 2013
@@ -56,7 +56,7 @@ public abstract class TempPostingsReader
   public abstract BlockTermState newTermState() throws IOException;
 
   /** Actually decode metadata for next term */
-  public abstract void decodeTerm(long[] longs, DataInput in, FieldInfo fieldInfo, BlockTermState state) throws IOException;
+  public abstract void decodeTerm(long[] longs, DataInput in, FieldInfo fieldInfo, BlockTermState state, boolean absolute) throws IOException;
 
   /** Must fully consume state, since after this call that
    *  TermState may be reused. */

Modified: lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/temp/TempBlockTreeTermsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/temp/TempBlockTreeTermsReader.java?rev=1515387&r1=1515386&r2=1515387&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/temp/TempBlockTreeTermsReader.java (original)
+++ lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/temp/TempBlockTreeTermsReader.java Mon Aug 19 12:30:24 2013
@@ -799,13 +799,9 @@ public class TempBlockTreeTermsReader ex
 
           // lazily catch up on metadata decode:
           final int limit = getTermBlockOrd();
+          boolean absolute = metaDataUpto == 0;
           assert limit > 0;
 
-          if (metaDataUpto == 0) {
-            Arrays.fill(longs, 0);
-          }
-          final int longSize = longs.length;
-      
           // TODO: better API would be "jump straight to term=N"???
           while (metaDataUpto < limit) {
 
@@ -824,12 +820,13 @@ public class TempBlockTreeTermsReader ex
               termState.totalTermFreq = termState.docFreq + statsReader.readVLong();
             }
             // metadata 
-            for (int i = 0; i < longSize; i++) {
-              longs[i] += bytesReader.readVLong();
+            for (int i = 0; i < longsSize; i++) {
+              longs[i] = bytesReader.readVLong();
             }
-            postingsReader.decodeTerm(longs, bytesReader, fieldInfo, termState);
+            postingsReader.decodeTerm(longs, bytesReader, fieldInfo, termState, absolute);
 
             metaDataUpto++;
+            absolute = false;
           }
           termState.termBlockOrd = metaDataUpto;
         }
@@ -2623,13 +2620,9 @@ public class TempBlockTreeTermsReader ex
 
           // lazily catch up on metadata decode:
           final int limit = getTermBlockOrd();
+          boolean absolute = metaDataUpto == 0;
           assert limit > 0;
 
-          if (metaDataUpto == 0) {
-            Arrays.fill(longs, 0);
-          }
-          final int longSize = longs.length;
-      
           // TODO: better API would be "jump straight to term=N"???
           while (metaDataUpto < limit) {
 
@@ -2648,12 +2641,13 @@ public class TempBlockTreeTermsReader ex
               state.totalTermFreq = state.docFreq + statsReader.readVLong();
             }
             // metadata 
-            for (int i = 0; i < longSize; i++) {
-              longs[i] += bytesReader.readVLong();
+            for (int i = 0; i < longsSize; i++) {
+              longs[i] = bytesReader.readVLong();
             }
-            postingsReader.decodeTerm(longs, bytesReader, fieldInfo, state);
+            postingsReader.decodeTerm(longs, bytesReader, fieldInfo, state, absolute);
 
             metaDataUpto++;
+            absolute = false;
           }
           state.termBlockOrd = metaDataUpto;
         }

Modified: lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/temp/TempFSTOrdTermsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/temp/TempFSTOrdTermsReader.java?rev=1515387&r1=1515386&r2=1515387&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/temp/TempFSTOrdTermsReader.java (original)
+++ lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/temp/TempFSTOrdTermsReader.java Mon Aug 19 12:30:24 2013
@@ -324,7 +324,7 @@ public class TempFSTOrdTermsReader exten
           refillMetadata();
         }
         metaBytesReader.reset(metaBytesBlock, bytesStart[upto], bytesLength[upto]);
-        postingsReader.decodeTerm(longs[upto], metaBytesReader, fieldInfo, state);
+        postingsReader.decodeTerm(longs[upto], metaBytesReader, fieldInfo, state, true);
       }
 
       /** Load current stats shard */

Modified: lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/temp/TempFSTTermsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/temp/TempFSTTermsReader.java?rev=1515387&r1=1515386&r2=1515387&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/temp/TempFSTTermsReader.java (original)
+++ lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/temp/TempFSTTermsReader.java Mon Aug 19 12:30:24 2013
@@ -326,7 +326,7 @@ public class TempFSTTermsReader extends 
           if (meta.bytes != null) {
             bytesReader.reset(meta.bytes, 0, meta.bytes.length);
           }
-          postingsReader.decodeTerm(meta.longs, bytesReader, fieldInfo, state);
+          postingsReader.decodeTerm(meta.longs, bytesReader, fieldInfo, state, true);
           decoded = true;
         }
       }
@@ -473,7 +473,7 @@ public class TempFSTTermsReader extends 
           if (meta.bytes != null) {
             bytesReader.reset(meta.bytes, 0, meta.bytes.length);
           }
-          postingsReader.decodeTerm(meta.longs, bytesReader, fieldInfo, state);
+          postingsReader.decodeTerm(meta.longs, bytesReader, fieldInfo, state, true);
           decoded = true;
         }
       }

Modified: lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/temp/TempPostingsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/temp/TempPostingsReader.java?rev=1515387&r1=1515386&r2=1515387&view=diff
==============================================================================
--- lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/temp/TempPostingsReader.java (original)
+++ lucene/dev/branches/lucene3069/lucene/core/src/java/org/apache/lucene/codecs/temp/TempPostingsReader.java Mon Aug 19 12:30:24 2013
@@ -191,18 +191,23 @@ public final class TempPostingsReader ex
   }
 
   @Override
-  public void decodeTerm(long[] longs, DataInput in, FieldInfo fieldInfo, BlockTermState _termState)
+  public void decodeTerm(long[] longs, DataInput in, FieldInfo fieldInfo, BlockTermState _termState, boolean absolute)
     throws IOException {
     final IntBlockTermState termState = (IntBlockTermState) _termState;
     final boolean fieldHasPositions = fieldInfo.getIndexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS) >= 0;
     final boolean fieldHasOffsets = fieldInfo.getIndexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS) >= 0;
     final boolean fieldHasPayloads = fieldInfo.hasPayloads();
-    
-    termState.docStartFP = longs[0];
+   
+    if (absolute) {
+      termState.docStartFP = 0;
+      termState.posStartFP = 0;
+      termState.payStartFP = 0;
+    }
+    termState.docStartFP += longs[0];
     if (fieldHasPositions) {
-      termState.posStartFP = longs[1];
+      termState.posStartFP += longs[1];
       if (fieldHasOffsets || fieldHasPayloads) {
-        termState.payStartFP = longs[2];
+        termState.payStartFP += longs[2];
       }
     }