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