Class IDVersionPostingsFormat
- java.lang.Object
-
- org.apache.lucene.codecs.PostingsFormat
-
- org.apache.lucene.sandbox.codecs.idversion.IDVersionPostingsFormat
-
- All Implemented Interfaces:
NamedSPILoader.NamedSPI
public class IDVersionPostingsFormat extends PostingsFormat
A PostingsFormat optimized for primary-key (ID) fields that also record a version (long) for each ID, delivered as a payload created bylongToBytes(long, org.apache.lucene.util.BytesRef)
during indexing. At search time, the TermsEnum implementationIDVersionSegmentTermsEnum
enables fast (using only the terms index when possible) lookup for whether a given ID was previously indexed with version > N (seeIDVersionSegmentTermsEnum.seekExact(BytesRef,long)
.This is most effective if the app assigns monotonically increasing global version to each indexed doc. Then, during indexing, use
IDVersionSegmentTermsEnum.seekExact(BytesRef,long)
(along withLiveFieldValues
) to decide whether the document you are about to index was already indexed with a higher version, and skip it if so.The field is effectively indexed as DOCS_ONLY and the docID is pulsed into the terms dictionary, but the user must feed in the version as a payload on the first token.
NOTE: term vectors cannot be indexed with this field (not that you should really ever want to do this).
- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
-
Field Summary
Fields Modifier and Type Field Description static long
MAX_VERSION
version must be <= this, because we encode with ZigZag.static long
MIN_VERSION
version must be >= this.-
Fields inherited from class org.apache.lucene.codecs.PostingsFormat
EMPTY
-
-
Constructor Summary
Constructors Constructor Description IDVersionPostingsFormat()
IDVersionPostingsFormat(int minTermsInBlock, int maxTermsInBlock)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static long
bytesToLong(BytesRef bytes)
FieldsConsumer
fieldsConsumer(SegmentWriteState state)
FieldsProducer
fieldsProducer(SegmentReadState state)
static void
longToBytes(long v, BytesRef bytes)
-
Methods inherited from class org.apache.lucene.codecs.PostingsFormat
availablePostingsFormats, forName, getName, reloadPostingsFormats, toString
-
-
-
-
Field Detail
-
MIN_VERSION
public static final long MIN_VERSION
version must be >= this.- See Also:
- Constant Field Values
-
MAX_VERSION
public static final long MAX_VERSION
version must be <= this, because we encode with ZigZag.- See Also:
- Constant Field Values
-
-
Method Detail
-
fieldsConsumer
public FieldsConsumer fieldsConsumer(SegmentWriteState state) throws IOException
- Specified by:
fieldsConsumer
in classPostingsFormat
- Throws:
IOException
-
fieldsProducer
public FieldsProducer fieldsProducer(SegmentReadState state) throws IOException
- Specified by:
fieldsProducer
in classPostingsFormat
- Throws:
IOException
-
bytesToLong
public static long bytesToLong(BytesRef bytes)
-
longToBytes
public static void longToBytes(long v, BytesRef bytes)
-
-