From 054a95e182cdc2597979009ac09444faf8aebec7 Mon Sep 17 00:00:00 2001
From: Han Jiang
Date: Wed, 4 Sep 2013 03:05:23 +0000
Subject: [PATCH] LUCENE-3069: javadocs
git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene3069@1519909 13f79535-47bb-0310-9956-ffa450edef68
---
.../codecs/temp/TempFSTOrdPostingsFormat.java | 87 ++++++++++++++++++-
.../codecs/temp/TempFSTOrdTermsReader.java | 1 -
.../codecs/temp/TempFSTOrdTermsWriter.java | 1 -
.../codecs/temp/TempFSTPostingsFormat.java | 66 +++++++++++++-
.../codecs/temp/TempFSTTermsReader.java | 24 ++---
.../codecs/temp/TempFSTTermsWriter.java | 12 +--
.../lucene/codecs/temp/TempTermOutputs.java | 52 +++++------
.../lucene/codecs/BlockTreeTermsWriter.java | 10 +--
.../lucene41/Lucene41PostingsFormat.java | 6 +-
.../apache/lucene/util/LuceneTestCase.java | 6 +-
10 files changed, 204 insertions(+), 61 deletions(-)
diff --git a/lucene/codecs/src/java/org/apache/lucene/codecs/temp/TempFSTOrdPostingsFormat.java b/lucene/codecs/src/java/org/apache/lucene/codecs/temp/TempFSTOrdPostingsFormat.java
index 4ae5a499cf1..f2fe18c0c65 100644
--- a/lucene/codecs/src/java/org/apache/lucene/codecs/temp/TempFSTOrdPostingsFormat.java
+++ b/lucene/codecs/src/java/org/apache/lucene/codecs/temp/TempFSTOrdPostingsFormat.java
@@ -31,6 +31,9 @@ import org.apache.lucene.index.FieldInfo.IndexOptions;
import org.apache.lucene.index.SegmentReadState;
import org.apache.lucene.index.SegmentWriteState;
import org.apache.lucene.util.IOUtils;
+import org.apache.lucene.codecs.CodecUtil; // javadocs
+import org.apache.lucene.store.DataOutput; // javadocs
+import org.apache.lucene.util.fst.FST; // javadocs
/**
* FST-based term dict, using ord as FST output.
@@ -44,7 +47,89 @@ import org.apache.lucene.util.IOUtils;
* 3. generic byte[], e.g. other information customized by postings base.
* 4. single-level skip list to speed up metadata decoding by ord.
*
- *
+ *
+ * Files:
+ *
+ *
+ *
+ *
+ * Term Index
+ *
+ * The .tix contains a list of FSTs, one for each field.
+ * The FST maps a term to its corresponding order in current field.
+ *
+ *
+ *
+ * - TermIndex(.tix) --> Header, TermFSTNumFields
+ * - TermFST --> {@link FST FST<long>}
+ * - Header --> {@link CodecUtil#writeHeader CodecHeader}
+ *
+ *
+ * Notes:
+ *
+ * -
+ * Since terms are already sorted before writing to Term Block,
+ * their ords can directly used to seek term metadata from term block.
+ *
+ *
+ *
+ *
+ * Term Block
+ *
+ * The .tbk contains all the statistics and metadata for terms, along with field summary (e.g.
+ * per-field data like number of documents in current field). For each field, there are four blocks:
+ *
+ * - statistics bytes block: contains term statistics;
+ * - metadata longs block: delta-encodes monotonical part of metadata;
+ * - metadata bytes block: encodes other parts of metadata;
+ * - skip block: contains skip data, to speed up metadata seeking and decoding
+ *
+ *
+ *
+ * File Format:
+ *
+ * - TermBlock(.tbk) --> Header, PostingsHeader, FieldSummary, DirOffset
+ * - FieldSummary --> NumFields, <FieldNumber, NumTerms, SumTotalTermFreq?, SumDocFreq,
+ * DocCount, LongsSize, DataBlock > NumFields
+ *
+ * - DataBlock --> StatsBlockLength, MetaLongsBlockLength, MetaBytesBlockLength,
+ * SkipBlock, StatsBlock, MetaLongsBlock, MetaBytesBlock
+ * - SkipBlock --> < StatsFPDelta, MetaLongsSkipFPDelta, MetaBytesSkipFPDelta,
+ * MetaLongsSkipDeltaLongsSize >NumTerms
+ *
- StatsBlock --> < DocFreq[Same?], (TotalTermFreq-DocFreq) ? > NumTerms
+ *
- MetaLongsBlock --> < LongDeltaLongsSize, BytesSize > NumTerms
+ *
- MetaBytesBlock --> Byte MetaBytesBlockLength
+ *
- Header --> {@link CodecUtil#writeHeader CodecHeader}
+ * - DirOffset --> {@link DataOutput#writeLong Uint64}
+ * - NumFields, FieldNumber, DocCount, DocFreq, LongsSize,
+ * FieldNumber, DocCount --> {@link DataOutput#writeVInt VInt}
+ * - NumTerms, SumTotalTermFreq, SumDocFreq, StatsBlockLength, MetaLongsBlockLength, MetaBytesBlockLength,
+ * StatsFPDelta, MetaLongsSkipFPDelta, MetaBytesSkipFPDelta, MetaLongsSkipStart, TotalTermFreq,
+ * LongDelta,--> {@link DataOutput#writeVLong VLong}
+ *
+ * Notes:
+ *
+ * -
+ * The format of PostingsHeader and MetaBytes are customized by the specific postings implementation:
+ * they contain arbitrary per-file data (such as parameters or versioning information), and per-term data
+ * (non-monotonical ones like pulsed postings data).
+ *
+ * -
+ * During initialization the reader will load all the blocks into memory. SkipBlock will be decoded, so that during seek
+ * term dict can lookup file pointers directly. StatsFPDelta, MetaLongsSkipFPDelta, etc. are file offset
+ * for every SkipInterval's term. MetaLongsSkipDelta is the difference from previous one, which indicates
+ * the value of preceding metadata longs for every SkipInterval's term.
+ *
+ * -
+ * DocFreq is the count of documents which contain the term. TotalTermFreq is the total number of occurrences of the term.
+ * Usually these two values are the same for long tail terms, therefore one bit is stole from DocFreq to check this case,
+ * so that encoding of TotalTermFreq may be omitted.
+ *
+ *
+ *
* @lucene.experimental
*/
diff --git a/lucene/codecs/src/java/org/apache/lucene/codecs/temp/TempFSTOrdTermsReader.java b/lucene/codecs/src/java/org/apache/lucene/codecs/temp/TempFSTOrdTermsReader.java
index 7438d3a7136..94887b7977d 100644
--- a/lucene/codecs/src/java/org/apache/lucene/codecs/temp/TempFSTOrdTermsReader.java
+++ b/lucene/codecs/src/java/org/apache/lucene/codecs/temp/TempFSTOrdTermsReader.java
@@ -89,7 +89,6 @@ public class TempFSTOrdTermsReader extends FieldsProducer {
readHeader(indexIn);
readHeader(blockIn);
this.postingsReader.init(blockIn);
- seekDir(indexIn);
seekDir(blockIn);
final FieldInfos fieldInfos = state.fieldInfos;
diff --git a/lucene/codecs/src/java/org/apache/lucene/codecs/temp/TempFSTOrdTermsWriter.java b/lucene/codecs/src/java/org/apache/lucene/codecs/temp/TempFSTOrdTermsWriter.java
index d484cf76f16..123798ca3ab 100644
--- a/lucene/codecs/src/java/org/apache/lucene/codecs/temp/TempFSTOrdTermsWriter.java
+++ b/lucene/codecs/src/java/org/apache/lucene/codecs/temp/TempFSTOrdTermsWriter.java
@@ -120,7 +120,6 @@ public class TempFSTOrdTermsWriter extends FieldsConsumer {
field.metaBytesOut.writeTo(blockOut);
field.dict.save(indexOut);
}
- writeTrailer(indexOut, indexDirStart);
writeTrailer(blockOut, blockDirStart);
} catch (IOException ioe2) {
ioe = ioe2;
diff --git a/lucene/codecs/src/java/org/apache/lucene/codecs/temp/TempFSTPostingsFormat.java b/lucene/codecs/src/java/org/apache/lucene/codecs/temp/TempFSTPostingsFormat.java
index 326b4b7cad5..c9da7a00a28 100644
--- a/lucene/codecs/src/java/org/apache/lucene/codecs/temp/TempFSTPostingsFormat.java
+++ b/lucene/codecs/src/java/org/apache/lucene/codecs/temp/TempFSTPostingsFormat.java
@@ -31,6 +31,9 @@ import org.apache.lucene.index.FieldInfo.IndexOptions;
import org.apache.lucene.index.SegmentReadState;
import org.apache.lucene.index.SegmentWriteState;
import org.apache.lucene.util.IOUtils;
+import org.apache.lucene.codecs.CodecUtil; // javadocs
+import org.apache.lucene.store.DataOutput; // javadocs
+import org.apache.lucene.util.fst.FST; // javadocs
/**
* FST-based term dict, using metadata as FST output.
@@ -42,8 +45,69 @@ import org.apache.lucene.util.IOUtils;
* 2. monotonic long[], e.g. the pointer to the postings list for that term;
* 3. generic byte[], e.g. other information need by postings reader.
*
+ *
+ * File:
+ *
+ *
+ *
+ *
+ *
Term Dictionary
+ *
+ * The .tst contains a list of FSTs, one for each field.
+ * The FST maps a term to its corresponding statistics (e.g. docfreq)
+ * and metadata (e.g. information for postings list reader like file pointer
+ * to postings list).
+ *
+ *
+ * Typically the metadata is separated into two parts:
+ *
+ * -
+ * Monotonical long array: Some metadata will always be ascending in order
+ * with the corresponding term. This part is used by FST to share outputs between arcs.
+ *
+ * -
+ * Generic byte array: Used to store non-monotonical metadata.
+ *
+ *
+ *
+ *
+ * File format:
+ *
+ * - TermsDict(.tst) --> Header, PostingsHeader, FieldSummary, DirOffset
+ * - FieldSummary --> NumFields, <FieldNumber, NumTerms, SumTotalTermFreq?,
+ * SumDocFreq, DocCount, LongsSize, TermFST >NumFields
+ * - TermFST --> {@link FST FST<TermData>}
+ * - TermData --> Flag, BytesSize?, LongDeltaLongsSize?, ByteBytesSize?,
+ * < DocFreq[Same?], (TotalTermFreq-DocFreq) > ?
+ * - Header --> {@link CodecUtil#writeHeader CodecHeader}
+ * - DirOffset --> {@link DataOutput#writeLong Uint64}
+ * - DocFreq, LongsSize, BytesSize, NumFields,
+ * FieldNumber, DocCount --> {@link DataOutput#writeVInt VInt}
+ * - TotalTermFreq, NumTerms, SumTotalTermFreq, SumDocFreq, LongDelta -->
+ * {@link DataOutput#writeVLong VLong}
+ *
+ * Notes:
+ *
+ * -
+ * The format of PostingsHeader and generic meta bytes are customized by the specific postings implementation:
+ * they contain arbitrary per-file data (such as parameters or versioning information), and per-term data
+ * (non-monotonical ones like pulsed postings data).
+ *
+ * -
+ * The format of TermData is determined by FST, typically monotonical metadata will be dense around shallow arcs,
+ * while in deeper arcs only generic bytes and term statistics exist.
+ *
+ * -
+ * The byte Flag is used to indicate which part of metadata exists on current arc. Specially the monotonical part
+ * is omitted when it is an array of 0s.
+ *
+ * -
+ * Since LongsSize is per-field fixed, it is only written once in field summary.
+ *
+ *
*
- *
* @lucene.experimental
*/
diff --git a/lucene/codecs/src/java/org/apache/lucene/codecs/temp/TempFSTTermsReader.java b/lucene/codecs/src/java/org/apache/lucene/codecs/temp/TempFSTTermsReader.java
index 17c520a89fa..b53d99aa5e8 100644
--- a/lucene/codecs/src/java/org/apache/lucene/codecs/temp/TempFSTTermsReader.java
+++ b/lucene/codecs/src/java/org/apache/lucene/codecs/temp/TempFSTTermsReader.java
@@ -167,7 +167,7 @@ public class TempFSTTermsReader extends FieldsProducer {
final long sumDocFreq;
final int docCount;
final int longsSize;
- final FST dict;
+ final FST dict;
TermsReader(FieldInfo fieldInfo, long numTerms, long sumTotalTermFreq, long sumDocFreq, int docCount, int longsSize) throws IOException {
this.fieldInfo = fieldInfo;
@@ -176,7 +176,7 @@ public class TempFSTTermsReader extends FieldsProducer {
this.sumDocFreq = sumDocFreq;
this.docCount = docCount;
this.longsSize = longsSize;
- this.dict = new FST(in, new TempTermOutputs(fieldInfo, longsSize));
+ this.dict = new FST(in, new TempTermOutputs(fieldInfo, longsSize));
}
@Override
@@ -238,7 +238,7 @@ public class TempFSTTermsReader extends FieldsProducer {
final BlockTermState state;
/* Current term stats + undecoded metadata (long[] & byte[]) */
- TempTermOutputs.TempMetaData meta;
+ TempTermOutputs.TempTermData meta;
ByteArrayDataInput bytesReader;
/** Decodes metadata into customized term state */
@@ -306,7 +306,7 @@ public class TempFSTTermsReader extends FieldsProducer {
// Iterates through all terms in this field
private final class SegmentTermsEnum extends BaseTermsEnum {
- final BytesRefFSTEnum fstEnum;
+ final BytesRefFSTEnum fstEnum;
/* True when current term's metadata is decoded */
boolean decoded;
@@ -316,7 +316,7 @@ public class TempFSTTermsReader extends FieldsProducer {
SegmentTermsEnum() throws IOException {
super();
- this.fstEnum = new BytesRefFSTEnum(dict);
+ this.fstEnum = new BytesRefFSTEnum(dict);
this.decoded = false;
this.seekPending = false;
this.meta = null;
@@ -335,7 +335,7 @@ public class TempFSTTermsReader extends FieldsProducer {
}
// Update current enum according to FSTEnum
- void updateEnum(final InputOutput pair) {
+ void updateEnum(final InputOutput pair) {
if (pair == null) {
term = null;
} else {
@@ -405,22 +405,22 @@ public class TempFSTTermsReader extends FieldsProducer {
int metaUpto;
/* term dict fst */
- final FST fst;
+ final FST fst;
final FST.BytesReader fstReader;
- final Outputs fstOutputs;
+ final Outputs fstOutputs;
/* query automaton to intersect with */
final ByteRunAutomaton fsa;
private final class Frame {
/* fst stats */
- FST.Arc fstArc;
+ FST.Arc fstArc;
/* automaton stats */
int fsaState;
Frame() {
- this.fstArc = new FST.Arc();
+ this.fstArc = new FST.Arc();
this.fsaState = -1;
}
@@ -475,7 +475,7 @@ public class TempFSTTermsReader extends FieldsProducer {
/** Lazily accumulate meta data, when we got a accepted term */
void loadMetaData() throws IOException {
- FST.Arc last, next;
+ FST.Arc last, next;
last = stack[metaUpto].fstArc;
while (metaUpto != level) {
metaUpto++;
@@ -626,7 +626,7 @@ public class TempFSTTermsReader extends FieldsProducer {
/** Load frame for target arc(node) on fst, so that
* arc.label >= label and !fsa.reject(arc.label) */
Frame loadCeilFrame(int label, Frame top, Frame frame) throws IOException {
- FST.Arc arc = frame.fstArc;
+ FST.Arc arc = frame.fstArc;
arc = Util.readCeilArc(label, fst, top.fstArc, arc, fstReader);
if (arc == null) {
return null;
diff --git a/lucene/codecs/src/java/org/apache/lucene/codecs/temp/TempFSTTermsWriter.java b/lucene/codecs/src/java/org/apache/lucene/codecs/temp/TempFSTTermsWriter.java
index 34ab108e33e..997f661ccf5 100644
--- a/lucene/codecs/src/java/org/apache/lucene/codecs/temp/TempFSTTermsWriter.java
+++ b/lucene/codecs/src/java/org/apache/lucene/codecs/temp/TempFSTTermsWriter.java
@@ -125,9 +125,9 @@ public class TempFSTTermsWriter extends FieldsConsumer {
public final long sumDocFreq;
public final int docCount;
public final int longsSize;
- public final FST dict;
+ public final FST dict;
- public FieldMetaData(FieldInfo fieldInfo, long numTerms, long sumTotalTermFreq, long sumDocFreq, int docCount, int longsSize, FST fst) {
+ public FieldMetaData(FieldInfo fieldInfo, long numTerms, long sumTotalTermFreq, long sumDocFreq, int docCount, int longsSize, FST fst) {
this.fieldInfo = fieldInfo;
this.numTerms = numTerms;
this.sumTotalTermFreq = sumTotalTermFreq;
@@ -139,7 +139,7 @@ public class TempFSTTermsWriter extends FieldsConsumer {
}
final class TermsWriter extends TermsConsumer {
- private final Builder builder;
+ private final Builder builder;
private final TempTermOutputs outputs;
private final FieldInfo fieldInfo;
private final int longsSize;
@@ -154,7 +154,7 @@ public class TempFSTTermsWriter extends FieldsConsumer {
this.fieldInfo = fieldInfo;
this.longsSize = postingsWriter.setField(fieldInfo);
this.outputs = new TempTermOutputs(fieldInfo, longsSize);
- this.builder = new Builder(FST.INPUT_TYPE.BYTE1, outputs);
+ this.builder = new Builder(FST.INPUT_TYPE.BYTE1, outputs);
}
@Override
@@ -172,7 +172,7 @@ public class TempFSTTermsWriter extends FieldsConsumer {
public void finishTerm(BytesRef text, TermStats stats) throws IOException {
// write term meta data into fst
final BlockTermState state = postingsWriter.newTermState();
- final TempTermOutputs.TempMetaData meta = new TempTermOutputs.TempMetaData();
+ final TempTermOutputs.TempTermData meta = new TempTermOutputs.TempTermData();
meta.longs = new long[longsSize];
meta.bytes = null;
meta.docFreq = state.docFreq = stats.docFreq;
@@ -193,7 +193,7 @@ public class TempFSTTermsWriter extends FieldsConsumer {
public void finish(long sumTotalTermFreq, long sumDocFreq, int docCount) throws IOException {
// save FST dict
if (numTerms > 0) {
- final FST fst = builder.finish();
+ final FST fst = builder.finish();
fields.add(new FieldMetaData(fieldInfo, numTerms, sumTotalTermFreq, sumDocFreq, docCount, longsSize, fst));
}
}
diff --git a/lucene/codecs/src/java/org/apache/lucene/codecs/temp/TempTermOutputs.java b/lucene/codecs/src/java/org/apache/lucene/codecs/temp/TempTermOutputs.java
index 20482a1951e..6422b9b7d0b 100644
--- a/lucene/codecs/src/java/org/apache/lucene/codecs/temp/TempTermOutputs.java
+++ b/lucene/codecs/src/java/org/apache/lucene/codecs/temp/TempTermOutputs.java
@@ -36,8 +36,8 @@ import org.apache.lucene.util.LongsRef;
// NOTE: outputs should be per-field, since
// longsSize is fixed for each field
-public class TempTermOutputs extends Outputs {
- private final static TempMetaData NO_OUTPUT = new TempMetaData();
+public class TempTermOutputs extends Outputs {
+ private final static TempTermData NO_OUTPUT = new TempTermData();
//private static boolean TEST = false;
private final boolean hasPos;
private final int longsSize;
@@ -47,18 +47,18 @@ public class TempTermOutputs extends Outputs {
* On an FST, only long[] part is 'shared' and pushed towards root.
* byte[] and term stats will be kept on deeper arcs.
*/
- public static class TempMetaData {
+ public static class TempTermData {
long[] longs;
byte[] bytes;
int docFreq;
long totalTermFreq;
- TempMetaData() {
+ TempTermData() {
this.longs = null;
this.bytes = null;
this.docFreq = 0;
this.totalTermFreq = -1;
}
- TempMetaData(long[] longs, byte[] bytes, int docFreq, long totalTermFreq) {
+ TempTermData(long[] longs, byte[] bytes, int docFreq, long totalTermFreq) {
this.longs = longs;
this.bytes = bytes;
this.docFreq = docFreq;
@@ -92,10 +92,10 @@ public class TempTermOutputs extends Outputs {
public boolean equals(Object other_) {
if (other_ == this) {
return true;
- } else if (!(other_ instanceof TempTermOutputs.TempMetaData)) {
+ } else if (!(other_ instanceof TempTermOutputs.TempTermData)) {
return false;
}
- TempMetaData other = (TempMetaData) other_;
+ TempTermData other = (TempTermData) other_;
return statsEqual(this, other) &&
longsEqual(this, other) &&
bytesEqual(this, other);
@@ -115,7 +115,7 @@ public class TempTermOutputs extends Outputs {
// 1. every value in t1 is not larger than in t2, or
// 2. every value in t1 is not smaller than t2.
//
- public TempMetaData common(TempMetaData t1, TempMetaData t2) {
+ public TempTermData common(TempTermData t1, TempTermData t2) {
//if (TEST) System.out.print("common("+t1+", "+t2+") = ");
if (t1 == NO_OUTPUT || t2 == NO_OUTPUT) {
//if (TEST) System.out.println("ret:"+NO_OUTPUT);
@@ -125,7 +125,7 @@ public class TempTermOutputs extends Outputs {
long[] min = t1.longs, max = t2.longs;
int pos = 0;
- TempMetaData ret;
+ TempTermData ret;
while (pos < longsSize && min[pos] == max[pos]) {
pos++;
@@ -142,7 +142,7 @@ public class TempTermOutputs extends Outputs {
if (pos < longsSize || allZero(min)) { // not comparable or all-zero
ret = NO_OUTPUT;
} else {
- ret = new TempMetaData(min, null, 0, -1);
+ ret = new TempTermData(min, null, 0, -1);
}
} else { // equal long[]
if (statsEqual(t1, t2) && bytesEqual(t1, t2)) {
@@ -150,7 +150,7 @@ public class TempTermOutputs extends Outputs {
} else if (allZero(min)) {
ret = NO_OUTPUT;
} else {
- ret = new TempMetaData(min, null, 0, -1);
+ ret = new TempTermData(min, null, 0, -1);
}
}
//if (TEST) System.out.println("ret:"+ret);
@@ -158,7 +158,7 @@ public class TempTermOutputs extends Outputs {
}
@Override
- public TempMetaData subtract(TempMetaData t1, TempMetaData t2) {
+ public TempTermData subtract(TempTermData t1, TempTermData t2) {
//if (TEST) System.out.print("subtract("+t1+", "+t2+") = ");
if (t2 == NO_OUTPUT) {
//if (TEST) System.out.println("ret:"+t1);
@@ -176,11 +176,11 @@ public class TempTermOutputs extends Outputs {
pos++;
}
- TempMetaData ret;
+ TempTermData ret;
if (diff == 0 && statsEqual(t1, t2) && bytesEqual(t1, t2)) {
ret = NO_OUTPUT;
} else {
- ret = new TempMetaData(share, t1.bytes, t1.docFreq, t1.totalTermFreq);
+ ret = new TempTermData(share, t1.bytes, t1.docFreq, t1.totalTermFreq);
}
//if (TEST) System.out.println("ret:"+ret);
return ret;
@@ -190,7 +190,7 @@ public class TempTermOutputs extends Outputs {
// we can gain about 5~7% for fuzzy queries, however this also
// means we are putting too much stress on FST Outputs decoding?
@Override
- public TempMetaData add(TempMetaData t1, TempMetaData t2) {
+ public TempTermData add(TempTermData t1, TempTermData t2) {
//if (TEST) System.out.print("add("+t1+", "+t2+") = ");
if (t1 == NO_OUTPUT) {
//if (TEST) System.out.println("ret:"+t2);
@@ -209,18 +209,18 @@ public class TempTermOutputs extends Outputs {
pos++;
}
- TempMetaData ret;
+ TempTermData ret;
if (t2.bytes != null || t2.docFreq > 0) {
- ret = new TempMetaData(accum, t2.bytes, t2.docFreq, t2.totalTermFreq);
+ ret = new TempTermData(accum, t2.bytes, t2.docFreq, t2.totalTermFreq);
} else {
- ret = new TempMetaData(accum, t1.bytes, t1.docFreq, t1.totalTermFreq);
+ ret = new TempTermData(accum, t1.bytes, t1.docFreq, t1.totalTermFreq);
}
//if (TEST) System.out.println("ret:"+ret);
return ret;
}
@Override
- public void write(TempMetaData data, DataOutput out) throws IOException {
+ public void write(TempTermData data, DataOutput out) throws IOException {
int bit0 = allZero(data.longs) ? 0 : 1;
int bit1 = ((data.bytes == null || data.bytes.length == 0) ? 0 : 1) << 1;
int bit2 = ((data.docFreq == 0) ? 0 : 1) << 2;
@@ -259,7 +259,7 @@ public class TempTermOutputs extends Outputs {
}
@Override
- public TempMetaData read(DataInput in) throws IOException {
+ public TempTermData read(DataInput in) throws IOException {
long[] longs = new long[longsSize];
byte[] bytes = null;
int docFreq = 0;
@@ -292,29 +292,29 @@ public class TempTermOutputs extends Outputs {
docFreq = code;
}
}
- return new TempMetaData(longs, bytes, docFreq, totalTermFreq);
+ return new TempTermData(longs, bytes, docFreq, totalTermFreq);
}
@Override
- public TempMetaData getNoOutput() {
+ public TempTermData getNoOutput() {
return NO_OUTPUT;
}
@Override
- public String outputToString(TempMetaData data) {
+ public String outputToString(TempTermData data) {
return data.toString();
}
- static boolean statsEqual(final TempMetaData t1, final TempMetaData t2) {
+ static boolean statsEqual(final TempTermData t1, final TempTermData t2) {
return t1.docFreq == t2.docFreq && t1.totalTermFreq == t2.totalTermFreq;
}
- static boolean bytesEqual(final TempMetaData t1, final TempMetaData t2) {
+ static boolean bytesEqual(final TempTermData t1, final TempTermData t2) {
if (t1.bytes == null && t2.bytes == null) {
return true;
}
return t1.bytes != null && t2.bytes != null && Arrays.equals(t1.bytes, t2.bytes);
}
- static boolean longsEqual(final TempMetaData t1, final TempMetaData t2) {
+ static boolean longsEqual(final TempTermData t1, final TempTermData t2) {
if (t1.longs == null && t2.longs == null) {
return true;
}
diff --git a/lucene/core/src/java/org/apache/lucene/codecs/BlockTreeTermsWriter.java b/lucene/core/src/java/org/apache/lucene/codecs/BlockTreeTermsWriter.java
index b79d4f4f304..661e8bf6261 100644
--- a/lucene/core/src/java/org/apache/lucene/codecs/BlockTreeTermsWriter.java
+++ b/lucene/core/src/java/org/apache/lucene/codecs/BlockTreeTermsWriter.java
@@ -104,14 +104,14 @@ import org.apache.lucene.util.packed.PackedInts;
* and decoding the Postings Metadata and Term Metadata sections.
*
*