Package org.apache.lucene.index

## Class SlowImpactsEnum

- java.lang.Object
- - org.apache.lucene.search.DocIdSetIterator
  - - org.apache.lucene.index.PostingsEnum
    - - org.apache.lucene.index.ImpactsEnum
      - - org.apache.lucene.index.SlowImpactsEnum

- All Implemented Interfaces:
    `ImpactsSource`

      public final class SlowImpactsEnum
      extends ImpactsEnum

  `ImpactsEnum` that doesn't index impacts but implements the API in a legal way. This is typically used for short postings that do not need skipping.

- - ### Field Summary

    - ### Fields inherited from class org.apache.lucene.index.PostingsEnum

      `ALL, FREQS, NONE, OFFSETS, PAYLOADS, POSITIONS`

    - ### Fields inherited from class org.apache.lucene.search.DocIdSetIterator

      `NO_MORE_DOCS`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `SlowImpactsEnum​(PostingsEnum delegate)` | Wrap the given `PostingsEnum`.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `advance​(int target)` | Advances to the first beyond the current whose document number is greater than or equal to target, and returns the document number itself.
    `void` | `advanceShallow​(int target)` | Shallow-advance to `target`.
    `long` | `cost()` | Returns the estimated cost of this `DocIdSetIterator`.
    `int` | `docID()` | Returns the following: `-1` if `DocIdSetIterator.nextDoc()` or `DocIdSetIterator.advance(int)` were not called yet.
    `int` | `endOffset()` | Returns end offset for the current position, or -1 if offsets were not indexed.
    `int` | `freq()` | Returns term frequency in the current document, or 1 if the field was indexed with `IndexOptions.DOCS`.
    `Impacts` | `getImpacts()` | Get information about upcoming impacts for doc ids that are greater than or equal to the maximum of `DocIdSetIterator.docID()` and the last target that was passed to `ImpactsSource.advanceShallow(int)`.
    `BytesRef` | `getPayload()` | Returns the payload at this position, or null if no payload was indexed.
    `int` | `nextDoc()` | Advances to the next document in the set and returns the doc it is currently on, or `DocIdSetIterator.NO_MORE_DOCS` if there are no more docs in the set. NOTE: after the iterator has exhausted you should not call this method, as it may result in unpredicted behavior.
    `int` | `nextPosition()` | Returns the next position, or -1 if positions were not indexed.
    `int` | `startOffset()` | Returns start offset for the current position, or -1 if offsets were not indexed.

    - ### Methods inherited from class org.apache.lucene.index.PostingsEnum

      `featureRequested`

    - ### Methods inherited from class org.apache.lucene.search.DocIdSetIterator

      `all, empty, range, slowAdvance`

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

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

- - ### Constructor Detail

    - #### SlowImpactsEnum

          public SlowImpactsEnum​(PostingsEnum delegate)

      Wrap the given `PostingsEnum`.

  - ### Method Detail

    - #### nextDoc

          public int nextDoc()
                      throws IOException

      Description copied from class: `DocIdSetIterator`
      Advances to the next document in the set and returns the doc it is currently on, or `DocIdSetIterator.NO_MORE_DOCS` if there are no more docs in the set.
      NOTE: after the iterator has exhausted you should not call this method, as it may result in unpredicted behavior.
      Specified by:
        `nextDoc` in class `DocIdSetIterator`
      Throws:
        `IOException`

    - #### docID

          public int docID()

      Description copied from class: `DocIdSetIterator`
      Returns the following:
      - `-1` if `DocIdSetIterator.nextDoc()` or `DocIdSetIterator.advance(int)` were not called yet.
      - `DocIdSetIterator.NO_MORE_DOCS` if the iterator has exhausted.
      - Otherwise it should return the doc ID it is currently on.
      Specified by:
        `docID` in class `DocIdSetIterator`

    - #### cost

          public long cost()

      Description copied from class: `DocIdSetIterator`
      Returns the estimated cost of this `DocIdSetIterator`.

      This is generally an upper bound of the number of documents this iterator might match, but may be a rough heuristic, hardcoded value, or otherwise completely inaccurate.

      Specified by:
        `cost` in class `DocIdSetIterator`

    - #### advance

          public int advance​(int target)
                      throws IOException

      Description copied from class: `DocIdSetIterator`
      Advances to the first beyond the current whose document number is greater than or equal to target, and returns the document number itself. Exhausts the iterator and returns `DocIdSetIterator.NO_MORE_DOCS` if target is greater than the highest document number in the set.

      The behavior of this method is undefined when called with `target ≤ current` , or after the iterator has exhausted. Both cases may result in unpredicted behavior.

      When `target > current` it behaves as if written:

           int advance(int target) {
             int doc;
             while ((doc = nextDoc()) < target) {
             }
             return doc;
           }

      Some implementations are considerably more efficient than that.

      NOTE: this method may be called with `DocIdSetIterator.NO_MORE_DOCS` for efficiency by some Scorers. If your implementation cannot efficiently determine that it should exhaust, it is recommended that you check for that value in each call to this method.

      Specified by:
        `advance` in class `DocIdSetIterator`
      Throws:
        `IOException`

    - #### startOffset

          public int startOffset()
                          throws IOException

      Description copied from class: `PostingsEnum`
      Returns start offset for the current position, or -1 if offsets were not indexed.
      Specified by:
        `startOffset` in class `PostingsEnum`
      Throws:
        `IOException`

    - #### nextPosition

          public int nextPosition()
                           throws IOException

      Description copied from class: `PostingsEnum`
      Returns the next position, or -1 if positions were not indexed. Calling this more than `PostingsEnum.freq()` times is undefined.
      Specified by:
        `nextPosition` in class `PostingsEnum`
      Throws:
        `IOException`

    - #### getPayload

          public BytesRef getPayload()
                              throws IOException

      Description copied from class: `PostingsEnum`
      Returns the payload at this position, or null if no payload was indexed. You should not modify anything (neither members of the returned BytesRef nor bytes in the byte[]).
      Specified by:
        `getPayload` in class `PostingsEnum`
      Throws:
        `IOException`

    - #### freq

          public int freq()
                   throws IOException

      Description copied from class: `PostingsEnum`
      Returns term frequency in the current document, or 1 if the field was indexed with `IndexOptions.DOCS`. Do not call this before `DocIdSetIterator.nextDoc()` is first called, nor after `DocIdSetIterator.nextDoc()` returns `DocIdSetIterator.NO_MORE_DOCS`.

      NOTE: if the `PostingsEnum` was obtain with `PostingsEnum.NONE`, the result of this method is undefined.

      Specified by:
        `freq` in class `PostingsEnum`
      Throws:
        `IOException`

    - #### endOffset

          public int endOffset()
                        throws IOException

      Description copied from class: `PostingsEnum`
      Returns end offset for the current position, or -1 if offsets were not indexed.
      Specified by:
        `endOffset` in class `PostingsEnum`
      Throws:
        `IOException`

    - #### advanceShallow

          public void advanceShallow​(int target)

      Description copied from interface: `ImpactsSource`
      Shallow-advance to `target`. This is cheaper than calling `DocIdSetIterator.advance(int)` and allows further calls to `ImpactsSource.getImpacts()` to ignore doc IDs that are less than `target` in order to get more precise information about impacts. This method may not be called on targets that are less than the current `DocIdSetIterator.docID()`. After this method has been called, `DocIdSetIterator.nextDoc()` may not be called if the current doc ID is less than `target - 1` and `DocIdSetIterator.advance(int)` may not be called on targets that are less than `target`.

    - #### getImpacts

          public Impacts getImpacts()

      Description copied from interface: `ImpactsSource`
      Get information about upcoming impacts for doc ids that are greater than or equal to the maximum of `DocIdSetIterator.docID()` and the last target that was passed to `ImpactsSource.advanceShallow(int)`. This method may not be called on an unpositioned iterator on which `ImpactsSource.advanceShallow(int)` has never been called. NOTE: advancing this iterator may invalidate the returned impacts, so they should not be used after the iterator has been advanced.