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