Package org.apache.lucene.search

## Class AbstractKnnCollector

- java.lang.Object
- - org.apache.lucene.search.AbstractKnnCollector

- All Implemented Interfaces:
    `KnnCollector`
  Direct Known Subclasses:
    `TopKnnCollector`

      public abstract class AbstractKnnCollector
      extends Object
      implements KnnCollector

  AbstractKnnCollector is the default implementation for a knn collector used for gathering kNN results and providing topDocs from the gathered neighbors

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected long` | `visitedCount` |

  - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `protected` | `AbstractKnnCollector​(int k, long visitLimit)` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract boolean` | `collect​(int docId, float similarity)` | Collect the provided docId and include in the result set.
    `boolean` | `earlyTerminated()` | If search visits too many documents, the results collector will terminate early.
    `void` | `incVisitedCount​(int count)` |
    `int` | `k()` |
    `abstract float` | `minCompetitiveSimilarity()` | This method is utilized during search to ensure only competitive results are explored.
    `abstract TopDocs` | `topDocs()` | This drains the collected nearest kNN results and returns them in a new `TopDocs` collection, ordered by score descending.
    `long` | `visitedCount()` |
    `long` | `visitLimit()` |

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

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

- - ### Field Detail

    - #### visitedCount

          protected long visitedCount

  - ### Constructor Detail

    - #### AbstractKnnCollector

          protected AbstractKnnCollector​(int k,
                                         long visitLimit)

  - ### Method Detail

    - #### earlyTerminated

          public final boolean earlyTerminated()

      Description copied from interface: `KnnCollector`
      If search visits too many documents, the results collector will terminate early. Usually, this is due to some restricted filter on the document set.

      When collection is earlyTerminated, the results are not a correct representation of k nearest neighbors.

      Specified by:
        `earlyTerminated` in interface `KnnCollector`
      Returns:
        is the current result set marked as incomplete?

    - #### incVisitedCount

          public final void incVisitedCount​(int count)

      Specified by:
        `incVisitedCount` in interface `KnnCollector`
      Parameters:
        `count` - increments the visited vector count, must be greater than 0.

    - #### visitedCount

          public final long visitedCount()

      Specified by:
        `visitedCount` in interface `KnnCollector`
      Returns:
        the current visited vector count

    - #### visitLimit

          public final long visitLimit()

      Specified by:
        `visitLimit` in interface `KnnCollector`
      Returns:
        the visited vector limit

    - #### k

          public final int k()

      Specified by:
        `k` in interface `KnnCollector`
      Returns:
        the expected number of collected results

    - #### collect

          public abstract boolean collect​(int docId,
                                          float similarity)

      Description copied from interface: `KnnCollector`
      Collect the provided docId and include in the result set.
      Specified by:
        `collect` in interface `KnnCollector`
      Parameters:
        `docId` - of the vector to collect
        `similarity` - its calculated similarity
      Returns:
        true if the vector is collected

    - #### minCompetitiveSimilarity

          public abstract float minCompetitiveSimilarity()

      Description copied from interface: `KnnCollector`
      This method is utilized during search to ensure only competitive results are explored.

      Consequently, if this results collector wants to collect `k` results, this should return `Float.NEGATIVE_INFINITY` when not full.

      When full, the minimum score should be returned.

      Specified by:
        `minCompetitiveSimilarity` in interface `KnnCollector`
      Returns:
        the current minimum competitive similarity in the collection

    - #### topDocs

          public abstract TopDocs topDocs()

      Description copied from interface: `KnnCollector`
      This drains the collected nearest kNN results and returns them in a new `TopDocs` collection, ordered by score descending. NOTE: This is generally a destructive action and the collector should not be used after topDocs() is called.
      Specified by:
        `topDocs` in interface `KnnCollector`
      Returns:
        The collected top documents