org.apache.lucene.codecs.idversion

## Class IDVersionPostingsFormat

- java.lang.Object
- - org.apache.lucene.codecs.PostingsFormat
  - - org.apache.lucene.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 by `longToBytes(long, org.apache.lucene.util.BytesRef)` during indexing. At search time, the TermsEnum implementation `IDVersionSegmentTermsEnum` enables fast (using only the terms index when possible) lookup for whether a given ID was previously indexed with version > N (see `IDVersionSegmentTermsEnum.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 with `LiveFieldValues`) 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 and 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 and Description
    `IDVersionPostingsFormat()`
    `IDVersionPostingsFormat(int minTermsInBlock, int maxTermsInBlock)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and 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`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### 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

  - ### Constructor Detail

    - #### IDVersionPostingsFormat

          public IDVersionPostingsFormat()

    - #### IDVersionPostingsFormat

          public IDVersionPostingsFormat(int minTermsInBlock,
                                         int maxTermsInBlock)

  - ### Method Detail

    - #### fieldsConsumer

          public FieldsConsumer fieldsConsumer(SegmentWriteState state)
                                        throws IOException

      Specified by:
        `fieldsConsumer` in class `PostingsFormat`
      Throws:
        `IOException`

    - #### fieldsProducer

          public FieldsProducer fieldsProducer(SegmentReadState state)
                                        throws IOException

      Specified by:
        `fieldsProducer` in class `PostingsFormat`
      Throws:
        `IOException`

    - #### bytesToLong

          public static long bytesToLong(BytesRef bytes)

    - #### longToBytes

          public static void longToBytes(long v,
                                         BytesRef bytes)

Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.