Class VersionBlockTreeTermsWriter.TermsWriter
- java.lang.Object
-
- org.apache.lucene.sandbox.codecs.idversion.VersionBlockTreeTermsWriter.TermsWriter
-
- Enclosing class:
- VersionBlockTreeTermsWriter
class VersionBlockTreeTermsWriter.TermsWriter extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description (package private) FixedBitSet
docsSeen
private FieldInfo
fieldInfo
private VersionBlockTreeTermsWriter.PendingTerm
firstPendingTerm
(package private) long
indexStartFP
private VersionBlockTreeTermsWriter.PendingTerm
lastPendingTerm
private BytesRefBuilder
lastTerm
private ByteBuffersDataOutput
metaWriter
private java.util.List<VersionBlockTreeTermsWriter.PendingBlock>
newBlocks
private long
numTerms
private java.util.List<VersionBlockTreeTermsWriter.PendingEntry>
pending
private int[]
prefixStarts
private ByteBuffersDataOutput
suffixWriter
-
Constructor Summary
Constructors Constructor Description TermsWriter(FieldInfo fieldInfo)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
finish()
private void
pushTerm(BytesRef text)
Pushes the new term to the top of the stack, and writes new blocks.void
write(BytesRef text, TermsEnum termsEnum, NormsProducer norms)
Writes one term's worth of postings.private VersionBlockTreeTermsWriter.PendingBlock
writeBlock(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) void
writeBlocks(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
-
indexStartFP
long indexStartFP
-
lastTerm
private final BytesRefBuilder lastTerm
-
prefixStarts
private int[] prefixStarts
-
pending
private final java.util.List<VersionBlockTreeTermsWriter.PendingEntry> pending
-
newBlocks
private final java.util.List<VersionBlockTreeTermsWriter.PendingBlock> newBlocks
-
firstPendingTerm
private VersionBlockTreeTermsWriter.PendingTerm firstPendingTerm
-
lastPendingTerm
private VersionBlockTreeTermsWriter.PendingTerm lastPendingTerm
-
suffixWriter
private final ByteBuffersDataOutput suffixWriter
-
metaWriter
private final ByteBuffersDataOutput metaWriter
-
-
Constructor Detail
-
TermsWriter
TermsWriter(FieldInfo fieldInfo)
-
-
Method Detail
-
writeBlocks
void writeBlocks(int prefixLength, int count) throws java.io.IOException
Writes the top count entries in pending, using prevTerm to compute the prefix.- Throws:
java.io.IOException
-
writeBlock
private VersionBlockTreeTermsWriter.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
-
-