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 */