Package org.apache.lucene.monitor

# Class CandidateMatcher<T extends QueryMatch>

java.lang.Object
org.apache.lucene.monitor.CandidateMatcher<T>

Direct Known Subclasses:
  `ParallelMatcher`, `PartitionMatcher`

public abstract class CandidateMatcher<T extends QueryMatch> extends Object
Class used to match candidate queries selected by a Presearcher from a Monitor query index.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected final IndexSearcher`
  `searcher`
  The searcher to run candidate queries against

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `CandidateMatcher(IndexSearcher searcher)`
  Creates a new CandidateMatcher for the supplied DocumentBatch

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected final void`
  `addMatch(T match, int doc)`
  Record a match
  `protected void`
  `copyMatches(CandidateMatcher<T> other)`
  Copy all matches from another CandidateMatcher
  `protected void`
  `doFinish()`
  Called when all monitoring of a batch of documents is complete
  `final MultiMatchingQueries<T>`
  `finish(long buildTime, int queryCount)`
  `abstract void`
  `matchQuery(String queryId, Query matchQuery, Map<String,String> metadata)`
  Runs the supplied query against this CandidateMatcher's set of documents, storing any resulting match, and recording the query in the presearcher hits
  `void`
  `reportError(String queryId, Exception e)`
  Called by the Monitor if running a query throws an Exception
  `abstract T`
  `resolve(T match1, T match2)`
  If two matches from the same query are found (for example, two branches of a disjunction), combine them.

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

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

- ## Field Details

  - ### searcher

    protected final IndexSearcher searcher
    The searcher to run candidate queries against

- ## Constructor Details

  - ### CandidateMatcher

    public CandidateMatcher(IndexSearcher searcher)
    Creates a new CandidateMatcher for the supplied DocumentBatch
    Parameters:
      `searcher` - the IndexSearcher to run queries against

- ## Method Details

  - ### matchQuery

    public abstract void matchQuery(String queryId, Query matchQuery, Map<String,String> metadata) throws IOException
    Runs the supplied query against this CandidateMatcher's set of documents, storing any resulting match, and recording the query in the presearcher hits
    Parameters:
      `queryId` - the query id
      `matchQuery` - the query to run
      `metadata` - the query metadata
    Throws:
      `IOException` - on IO errors

  - ### addMatch

    protected final void addMatch(T match, int doc)
    Record a match
    Parameters:
      `match` - a QueryMatch object

  - ### resolve

    public abstract T resolve(T match1, T match2)
    If two matches from the same query are found (for example, two branches of a disjunction), combine them.
    Parameters:
      `match1` - the first match found
      `match2` - the second match found
    Returns:
      a Match object that combines the two

  - ### reportError

    public void reportError(String queryId, Exception e)
    Called by the Monitor if running a query throws an Exception

  - ### finish

    public final MultiMatchingQueries<T> finish(long buildTime, int queryCount)
    Returns:
      the matches from this matcher

  - ### doFinish

    protected void doFinish()
    Called when all monitoring of a batch of documents is complete

  - ### copyMatches

    protected void copyMatches(CandidateMatcher<T> other)
    Copy all matches from another CandidateMatcher