Class LargeNumHitsTopDocsCollector

  • All Implemented Interfaces:
    Collector

    public final class LargeNumHitsTopDocsCollector
    extends java.lang.Object
    implements Collector
    Optimized collector for large number of hits. The collector maintains an ArrayList of hits until it accumulates the requested number of hits. Post that, it builds a Priority Queue and starts filtering further hits based on the minimum competitive score.
    • Field Detail

      • requestedHitCount

        private final int requestedHitCount
      • hits

        private java.util.List<ScoreDoc> hits
      • totalHits

        int totalHits
    • Constructor Detail

      • LargeNumHitsTopDocsCollector

        public LargeNumHitsTopDocsCollector​(int requestedHitCount)
    • Method Detail

      • scoreMode

        public ScoreMode scoreMode()
        Description copied from interface: Collector
        Indicates what features are required from the scorer.
        Specified by:
        scoreMode in interface Collector
      • topDocs

        public TopDocs topDocs​(int howMany)
        Returns the top docs that were collected by this collector.
      • populateResults

        protected void populateResults​(ScoreDoc[] results,
                                       int howMany)
        Populates the results array with the ScoreDoc instances. This can be overridden in case a different ScoreDoc type should be returned.
      • newTopDocs

        protected TopDocs newTopDocs​(ScoreDoc[] results)
        Returns a TopDocs instance containing the given results. If results is null it means there are no results to return, either because there were 0 calls to collect() or because the arguments to topDocs were invalid.
      • topDocs

        public TopDocs topDocs()
        Returns the top docs that were collected by this collector.