/// <summary> /// Finishes the current term. The provided {@link /// BlockTermState} contains the term's summary statistics, /// and will holds metadata from PBF when returned /// </summary> public abstract void FinishTerm(BlockTermState state);
/// <summary> /// Must fully consume state, since after this call that /// <see cref="TermState"/> may be reused. /// </summary> public abstract DocsAndPositionsEnum DocsAndPositions(FieldInfo fieldInfo, BlockTermState state, IBits skipDocs, DocsAndPositionsEnum reuse, DocsAndPositionsFlags flags);
/// <summary> /// Encode metadata as long[] and byte[]. {@code absolute} controls whether /// current term is delta encoded according to latest term. /// Usually elements in {@code longs} are file pointers, so each one always /// increases when a new term is consumed. {@code out} is used to write generic /// bytes, which are not monotonic. /// /// NOTE: sometimes long[] might contain "don't care" values that are unused, e.g. /// the pointer to postings list may not be defined for some terms but is defined /// for others, if it is designed to inline some postings data in term dictionary. /// In this case, the postings writer should always use the last value, so that each /// element in metadata long[] remains monotonic. /// </summary> public abstract void EncodeTerm(long[] longs, DataOutput @out, FieldInfo fieldInfo, BlockTermState state, bool absolute);
/// <summary> /// Encode metadata as long[] and byte[]. {@code absolute} controls whether /// current term is delta encoded according to latest term. /// Usually elements in {@code longs} are file pointers, so each one always /// increases when a new term is consumed. {@code out} is used to write generic /// bytes, which are not monotonic. /// /// NOTE: sometimes long[] might contain "don't care" values that are unused, e.g. /// the pointer to postings list may not be defined for some terms but is defined /// for others, if it is designed to inline some postings data in term dictionary. /// In this case, the postings writer should always use the last value, so that each /// element in metadata long[] remains monotonic. /// </summary> public abstract void EncodeTerm(long[] longs, DataOutput @out, FieldInfo fieldInfo, BlockTermState state, bool absolute);
/// <summary> /// Actually decode metadata for next term. </summary> /// <seealso cref="PostingsWriterBase.EncodeTerm(long[], Store.DataOutput, FieldInfo, BlockTermState, bool)"/> public abstract void DecodeTerm(long[] longs, DataInput @in, FieldInfo fieldInfo, BlockTermState state, bool absolute);
/// <summary> /// Finishes the current term. The provided {@link /// BlockTermState} contains the term's summary statistics, /// and will holds metadata from PBF when returned /// </summary> public abstract void FinishTerm(BlockTermState state);
/// <summary> /// Must fully consume state, since after this call that /// TermState may be reused. /// </summary> public abstract DocsEnum Docs(FieldInfo fieldInfo, BlockTermState state, Bits skipDocs, DocsEnum reuse, int flags);
public Frame(BlockTreeTermsReader.FieldReader.IntersectEnum outerInstance, int ord) { this.OuterInstance = outerInstance; this.Ord = ord; this.TermState = outerInstance.OuterInstance.OuterInstance.PostingsReader.NewTermState(); this.TermState.TotalTermFreq = -1; this.Longs = new long[outerInstance.OuterInstance.LongsSize]; }
/// <summary> /// Must fully consume state, since after this call that /// TermState may be reused. /// </summary> public abstract DocsAndPositionsEnum DocsAndPositions(FieldInfo fieldInfo, BlockTermState state, Bits skipDocs, DocsAndPositionsEnum reuse, int flags);
/// <summary> /// Actually decode metadata for next term </summary> /// <seealso cref= PostingsWriterBase#encodeTerm </seealso> public abstract void DecodeTerm(long[] longs, DataInput @in, FieldInfo fieldInfo, BlockTermState state, bool absolute);