Class BlockTreeTermsWriter.TermsWriter
- java.lang.Object
-
- org.apache.lucene.codecs.blocktree.BlockTreeTermsWriter.TermsWriter
-
- Enclosing class:
- BlockTreeTermsWriter
class BlockTreeTermsWriter.TermsWriter extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description private LZ4.HighCompressionHashTablecompressionHashTable(package private) FixedBitSetdocsSeenprivate FieldInfofieldInfoprivate BlockTreeTermsWriter.PendingTermfirstPendingTermprivate BlockTreeTermsWriter.PendingTermlastPendingTermprivate BytesRefBuilderlastTermprivate RAMOutputStreammetaWriterprivate java.util.List<BlockTreeTermsWriter.PendingBlock>newBlocksprivate longnumTermsprivate java.util.List<BlockTreeTermsWriter.PendingEntry>pendingprivate int[]prefixStartsprivate byte[]spareBytesprivate RAMOutputStreamspareWriterprivate RAMOutputStreamstatsWriterprivate RAMOutputStreamsuffixLengthsWriterprivate BytesRefBuildersuffixWriter(package private) longsumDocFreq(package private) longsumTotalTermFreq
-
Constructor Summary
Constructors Constructor Description TermsWriter(FieldInfo fieldInfo)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private booleanallEqual(byte[] b, int startOffset, int endOffset, byte value)voidfinish()private voidpushTerm(BytesRef text)Pushes the new term to the top of the stack, and writes new blocks.voidwrite(BytesRef text, TermsEnum termsEnum, NormsProducer norms)Writes one term's worth of postings.private BlockTreeTermsWriter.PendingBlockwriteBlock(int prefixLength, boolean isFloor, int floorLeadLabel, int start, int end, boolean hasTerms, boolean hasSubBlocks)Writes the specified slice (start is inclusive, end is exclusive) from pending stack as a new block.(package private) voidwriteBlocks(int prefixLength, int count)Writes the top count entries in pending, using prevTerm to compute the prefix.
-
-
-
Field Detail
-
fieldInfo
private final FieldInfo fieldInfo
-
numTerms
private long numTerms
-
docsSeen
final FixedBitSet docsSeen
-
sumTotalTermFreq
long sumTotalTermFreq
-
sumDocFreq
long sumDocFreq
-
lastTerm
private final BytesRefBuilder lastTerm
-
prefixStarts
private int[] prefixStarts
-
pending
private final java.util.List<BlockTreeTermsWriter.PendingEntry> pending
-
newBlocks
private final java.util.List<BlockTreeTermsWriter.PendingBlock> newBlocks
-
firstPendingTerm
private BlockTreeTermsWriter.PendingTerm firstPendingTerm
-
lastPendingTerm
private BlockTreeTermsWriter.PendingTerm lastPendingTerm
-
suffixLengthsWriter
private final RAMOutputStream suffixLengthsWriter
-
suffixWriter
private final BytesRefBuilder suffixWriter
-
statsWriter
private final RAMOutputStream statsWriter
-
metaWriter
private final RAMOutputStream metaWriter
-
spareWriter
private final RAMOutputStream spareWriter
-
spareBytes
private byte[] spareBytes
-
compressionHashTable
private final LZ4.HighCompressionHashTable compressionHashTable
-
-
Constructor Detail
-
TermsWriter
TermsWriter(FieldInfo fieldInfo)
-
-
Method Detail
-
writeBlocks
void writeBlocks(int prefixLength, int count) throws java.io.IOExceptionWrites the top count entries in pending, using prevTerm to compute the prefix.- Throws:
java.io.IOException
-
allEqual
private boolean allEqual(byte[] b, int startOffset, int endOffset, byte value)
-
writeBlock
private BlockTreeTermsWriter.PendingBlock writeBlock(int prefixLength, boolean isFloor, int floorLeadLabel, int start, int end, boolean hasTerms, boolean hasSubBlocks) throws java.io.IOException
Writes the specified slice (start is inclusive, end is exclusive) from pending stack as a new block. If isFloor is true, there were too many (more than maxItemsInBlock) entries sharing the same prefix, and so we broke it into multiple floor blocks where we record the starting label of the suffix of each floor block.- Throws:
java.io.IOException
-
write
public void write(BytesRef text, TermsEnum termsEnum, NormsProducer norms) throws java.io.IOException
Writes one term's worth of postings.- Throws:
java.io.IOException
-
pushTerm
private void pushTerm(BytesRef text) throws java.io.IOException
Pushes the new term to the top of the stack, and writes new blocks.- Throws:
java.io.IOException
-
finish
public void finish() throws java.io.IOException- Throws:
java.io.IOException
-
-