Package org.apache.lucene.monitor
Class TermFilteredPresearcher
java.lang.Object
org.apache.lucene.monitor.Presearcher
org.apache.lucene.monitor.TermFilteredPresearcher
- Direct Known Subclasses:
MultipassTermFilteredPresearcher
Presearcher implementation that uses terms extracted from queries to index them in the Monitor,
and builds a disjunction from terms in a document to match them.
Handling of queries that do not support term extraction through the QueryVisitor
API can be configured by passing a list of CustomQueryHandler
implementations.
Filtering by additional fields can be configured by passing a set of field names. Documents
that contain values in those fields will only be checked against MonitorQuery
instances
that have the same fieldname-value mapping in their metadata.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected class
Implements aBytesRefIterator
over aBytesRefHash
protected static interface
Constructs a document disjunction from a set of terms -
Field Summary
FieldsModifier and TypeFieldDescription(package private) static final String
(package private) static final String
static final TermWeightor
The default TermWeightor, weighting by token lengthprivate final QueryAnalyzer
(package private) static final FieldType
private final List<CustomQueryHandler>
private final TermWeightor
Fields inherited from class org.apache.lucene.monitor.Presearcher
NO_FILTERING
-
Constructor Summary
ConstructorsConstructorDescriptionCreates a new TermFilteredPresearcher using the default term weightingTermFilteredPresearcher
(TermWeightor weightor, List<CustomQueryHandler> customQueryHandlers, Set<String> filterFields) Creates a new TermFilteredPresearcher -
Method Summary
Modifier and TypeMethodDescriptionprivate Query
buildFilterClause
(LeafReader reader, String field) private Query
buildFilterFields
(LeafReader reader) final Query
buildQuery
(LeafReader reader, BiPredicate<String, BytesRef> termAcceptor) Build a query for a Monitor's queryindex from a LeafReader over a set of documents to monitor.protected Document
buildQueryDocument
(QueryTree querytree) Builds aDocument
from the terms extracted from a queryprotected Map<String,
BytesRefHash> collectTerms
(QueryTree querytree) Collects terms from aQueryTree
and maps them per-fieldReturns aTermFilteredPresearcher.DocumentQueryBuilder
for this presearcherfinal Document
indexQuery
(Query query, Map<String, String> metadata) Build a lucene Document to index the query in a Monitor's queryindex
-
Field Details
-
DEFAULT_WEIGHTOR
The default TermWeightor, weighting by token length -
extractor
-
weightor
-
filterFields
-
queryHandlers
-
ANYTOKEN_FIELD
- See Also:
-
ANYTOKEN
- See Also:
-
QUERYFIELDTYPE
-
-
Constructor Details
-
TermFilteredPresearcher
public TermFilteredPresearcher()Creates a new TermFilteredPresearcher using the default term weighting -
TermFilteredPresearcher
public TermFilteredPresearcher(TermWeightor weightor, List<CustomQueryHandler> customQueryHandlers, Set<String> filterFields) Creates a new TermFilteredPresearcher- Parameters:
weightor
- the TermWeightorcustomQueryHandlers
- A list of custom query handlers to extract terms from non-core queriesfilterFields
- A set of fields to filter on
-
-
Method Details
-
buildQuery
Description copied from class:Presearcher
Build a query for a Monitor's queryindex from a LeafReader over a set of documents to monitor.- Specified by:
buildQuery
in classPresearcher
- Parameters:
reader
- aLeafReader
over the input documentstermAcceptor
- a predicate indicating if a term should be added to the query- Returns:
- a Query to run over a Monitor's queryindex
-
buildFilterFields
- Throws:
IOException
-
buildFilterClause
- Throws:
IOException
-
getQueryBuilder
Returns aTermFilteredPresearcher.DocumentQueryBuilder
for this presearcher -
indexQuery
Description copied from class:Presearcher
Build a lucene Document to index the query in a Monitor's queryindex- Specified by:
indexQuery
in classPresearcher
- Parameters:
query
- the Query to indexmetadata
- a Map of arbitrary query metadata- Returns:
- a lucene Document to add to the queryindex
-
buildQueryDocument
Builds aDocument
from the terms extracted from a query -
collectTerms
Collects terms from aQueryTree
and maps them per-field
-