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
    implements Collector

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
`static class` `FacetsCollector.MatchingDocs` Holds the documents that were matched in the `LeafReaderContext`.

### Constructor Summary

Constructors
Constructor and 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
`void` `collect(int doc)`
`protected void` `doSetNextReader(LeafReaderContext context)`
`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

`getLeafCollector`

### 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 final void collect(int doc)
                       throws IOException

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

#### scoreMode

    public ScoreMode scoreMode()

Specified by:
  `scoreMode` in interface `Collector`

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

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