Package org.apache.lucene.facet

## Class FacetsCollector

- java.lang.Object
- - org.apache.lucene.search.SimpleCollector
  - - org.apache.lucene.facet.FacetsCollector

- All Implemented Interfaces:
    `Collector`, `LeafCollector`
  Direct Known Subclasses:
    `RandomSamplingFacetsCollector`

      public class FacetsCollector
      extends SimpleCollector

  Collects hits for subsequent faceting. Once you've run a search and collect hits into this, instantiate one of the `Facets` subclasses to do the facet counting. Use the `search` utility methods to perform an "ordinary" search but also collect into a `Collector`.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static class` | `FacetsCollector.MatchingDocs` | Holds the documents that were matched in the `LeafReaderContext`.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `FacetsCollector()` | Default constructor
    `FacetsCollector​(boolean keepScores)` | Create this; if `keepScores` is true then a float[] is allocated to hold score of all hits.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `collect​(int doc)` |
    `protected void` | `doSetNextReader​(LeafReaderContext context)` |
    `void` | `finish()` |
    `boolean` | `getKeepScores()` | True if scores were saved.
    `List<FacetsCollector.MatchingDocs>` | `getMatchingDocs()` | Returns the documents matched by the query, one `FacetsCollector.MatchingDocs` per visited segment.
    `ScoreMode` | `scoreMode()` |
    `static TopDocs` | `search​(IndexSearcher searcher, Query q, int n, Collector fc)` | Utility method, to search and also collect all hits into the provided `Collector`.
    `static TopFieldDocs` | `search​(IndexSearcher searcher, Query q, int n, Sort sort, boolean doDocScores, Collector fc)` | Utility method, to search and also collect all hits into the provided `Collector`.
    `static TopFieldDocs` | `search​(IndexSearcher searcher, Query q, int n, Sort sort, Collector fc)` | Utility method, to search and also collect all hits into the provided `Collector`.
    `static TopDocs` | `searchAfter​(IndexSearcher searcher, ScoreDoc after, Query q, int n, Collector fc)` | Utility method, to search and also collect all hits into the provided `Collector`.
    `static TopDocs` | `searchAfter​(IndexSearcher searcher, ScoreDoc after, Query q, int n, Sort sort, boolean doDocScores, Collector fc)` | Utility method, to search and also collect all hits into the provided `Collector`.
    `static TopDocs` | `searchAfter​(IndexSearcher searcher, ScoreDoc after, Query q, int n, Sort sort, Collector fc)` | Utility method, to search and also collect all hits into the provided `Collector`.
    `void` | `setScorer​(Scorable scorer)` |

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

      `getLeafCollector`

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

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

    - ### Methods inherited from interface org.apache.lucene.search.Collector

      `setWeight`

    - ### Methods inherited from interface org.apache.lucene.search.LeafCollector

      `collect, competitiveIterator`

- - ### Constructor Detail

    - #### FacetsCollector

          public FacetsCollector()

      Default constructor

    - #### FacetsCollector

          public FacetsCollector​(boolean keepScores)

      Create this; if `keepScores` is true then a float[] is allocated to hold score of all hits.

  - ### Method Detail

    - #### getKeepScores

          public final boolean getKeepScores()

      True if scores were saved.

    - #### getMatchingDocs

          public List<FacetsCollector.MatchingDocs> getMatchingDocs()

      Returns the documents matched by the query, one `FacetsCollector.MatchingDocs` per visited segment.

    - #### collect

          public void collect​(int doc)
                       throws IOException

      Specified by:
        `collect` in interface `LeafCollector`
      Specified by:
        `collect` in class `SimpleCollector`
      Throws:
        `IOException`

    - #### scoreMode

          public ScoreMode scoreMode()

    - #### setScorer

          public final void setScorer​(Scorable scorer)
                               throws IOException

      Specified by:
        `setScorer` in interface `LeafCollector`
      Overrides:
        `setScorer` in class `SimpleCollector`
      Throws:
        `IOException`

    - #### doSetNextReader

          protected void doSetNextReader​(LeafReaderContext context)
                                  throws IOException

      Overrides:
        `doSetNextReader` in class `SimpleCollector`
      Throws:
        `IOException`

    - #### finish

          public void finish()
                      throws IOException

      Throws:
        `IOException`

    - #### search

          public static TopDocs search​(IndexSearcher searcher,
                                       Query q,
                                       int n,
                                       Collector fc)
                                throws IOException

      Utility method, to search and also collect all hits into the provided `Collector`.
      Throws:
        `IOException`

    - #### search

          public static TopFieldDocs search​(IndexSearcher searcher,
                                            Query q,
                                            int n,
                                            Sort sort,
                                            Collector fc)
                                     throws IOException

      Utility method, to search and also collect all hits into the provided `Collector`.
      Throws:
        `IOException`

    - #### search

          public static TopFieldDocs search​(IndexSearcher searcher,
                                            Query q,
                                            int n,
                                            Sort sort,
                                            boolean doDocScores,
                                            Collector fc)
                                     throws IOException

      Utility method, to search and also collect all hits into the provided `Collector`.
      Throws:
        `IOException`

    - #### searchAfter

          public static TopDocs searchAfter​(IndexSearcher searcher,
                                            ScoreDoc after,
                                            Query q,
                                            int n,
                                            Collector fc)
                                     throws IOException

      Utility method, to search and also collect all hits into the provided `Collector`.
      Throws:
        `IOException`

    - #### searchAfter

          public static TopDocs searchAfter​(IndexSearcher searcher,
                                            ScoreDoc after,
                                            Query q,
                                            int n,
                                            Sort sort,
                                            Collector fc)
                                     throws IOException

      Utility method, to search and also collect all hits into the provided `Collector`.
      Throws:
        `IOException`

    - #### searchAfter

          public static TopDocs searchAfter​(IndexSearcher searcher,
                                            ScoreDoc after,
                                            Query q,
                                            int n,
                                            Sort sort,
                                            boolean doDocScores,
                                            Collector fc)
                                     throws IOException

      Utility method, to search and also collect all hits into the provided `Collector`.
      Throws:
        `IOException`