public class WeightedSpanTermExtractor extends Object
WeightedSpanTerm
s from a Query
based on whether
Term
s from the Query
are contained in a supplied TokenStream
.Modifier and Type | Class and Description |
---|---|
protected static class |
WeightedSpanTermExtractor.PositionCheckingMap<K>
This class makes sure that if both position sensitive and insensitive
versions of the same term are added, the position insensitive one wins.
|
Constructor and Description |
---|
WeightedSpanTermExtractor() |
WeightedSpanTermExtractor(String defaultField) |
Modifier and Type | Method and Description |
---|---|
protected void |
collectSpanQueryFields(SpanQuery spanQuery,
Set<String> fieldNames) |
protected void |
extract(Query query,
Map<String,WeightedSpanTerm> terms)
Fills a
Map with <@link WeightedSpanTerm>s using the terms from the supplied Query . |
protected void |
extractUnknownQuery(Query query,
Map<String,WeightedSpanTerm> terms) |
protected void |
extractWeightedSpanTerms(Map<String,WeightedSpanTerm> terms,
SpanQuery spanQuery)
Fills a
Map with <@link WeightedSpanTerm>s using the terms from the supplied SpanQuery . |
protected void |
extractWeightedTerms(Map<String,WeightedSpanTerm> terms,
Query query)
Fills a
Map with <@link WeightedSpanTerm>s using the terms from the supplied Query . |
protected boolean |
fieldNameComparator(String fieldNameToCheck)
Necessary to implement matches for queries against
defaultField |
boolean |
getExpandMultiTermQuery() |
protected IndexReader |
getReaderForField(String field) |
TokenStream |
getTokenStream() |
Map<String,WeightedSpanTerm> |
getWeightedSpanTerms(Query query,
TokenStream tokenStream)
Creates a Map of
WeightedSpanTerms from the given Query and TokenStream . |
Map<String,WeightedSpanTerm> |
getWeightedSpanTerms(Query query,
TokenStream tokenStream,
String fieldName)
Creates a Map of
WeightedSpanTerms from the given Query and TokenStream . |
Map<String,WeightedSpanTerm> |
getWeightedSpanTermsWithScores(Query query,
TokenStream tokenStream,
String fieldName,
IndexReader reader)
Creates a Map of
WeightedSpanTerms from the given Query and TokenStream . |
boolean |
isCachedTokenStream() |
protected boolean |
mustRewriteQuery(SpanQuery spanQuery) |
void |
setExpandMultiTermQuery(boolean expandMultiTermQuery) |
protected void |
setMaxDocCharsToAnalyze(int maxDocCharsToAnalyze) |
void |
setWrapIfNotCachingTokenFilter(boolean wrap)
By default,
TokenStream s that are not of the type
CachingTokenFilter are wrapped in a CachingTokenFilter to
ensure an efficient reset - if you are already using a different caching
TokenStream impl and you don't want it to be wrapped, set this to
false. |
public WeightedSpanTermExtractor()
public WeightedSpanTermExtractor(String defaultField)
protected void extract(Query query, Map<String,WeightedSpanTerm> terms) throws IOException
Map
with <@link WeightedSpanTerm>s using the terms from the supplied Query
.query
- Query to extract Terms fromterms
- Map to place created WeightedSpanTerms inIOException
protected void extractUnknownQuery(Query query, Map<String,WeightedSpanTerm> terms) throws IOException
IOException
protected void extractWeightedSpanTerms(Map<String,WeightedSpanTerm> terms, SpanQuery spanQuery) throws IOException
Map
with <@link WeightedSpanTerm>s using the terms from the supplied SpanQuery
.terms
- Map to place created WeightedSpanTerms inspanQuery
- SpanQuery to extract Terms fromIOException
protected void extractWeightedTerms(Map<String,WeightedSpanTerm> terms, Query query) throws IOException
Map
with <@link WeightedSpanTerm>s using the terms from the supplied Query
.terms
- Map to place created WeightedSpanTerms inquery
- Query to extract Terms fromIOException
protected boolean fieldNameComparator(String fieldNameToCheck)
defaultField
protected IndexReader getReaderForField(String field) throws IOException
IOException
public Map<String,WeightedSpanTerm> getWeightedSpanTerms(Query query, TokenStream tokenStream) throws IOException
WeightedSpanTerms
from the given Query
and TokenStream
.
query
- that caused hittokenStream
- of text to be highlightedIOException
public Map<String,WeightedSpanTerm> getWeightedSpanTerms(Query query, TokenStream tokenStream, String fieldName) throws IOException
WeightedSpanTerms
from the given Query
and TokenStream
.
query
- that caused hittokenStream
- of text to be highlightedfieldName
- restricts Term's used based on field nameIOException
public Map<String,WeightedSpanTerm> getWeightedSpanTermsWithScores(Query query, TokenStream tokenStream, String fieldName, IndexReader reader) throws IOException
WeightedSpanTerms
from the given Query
and TokenStream
. Uses a supplied
IndexReader
to properly weight terms (for gradient highlighting).
query
- that caused hittokenStream
- of text to be highlightedfieldName
- restricts Term's used based on field namereader
- to use for scoringIOException
protected void collectSpanQueryFields(SpanQuery spanQuery, Set<String> fieldNames)
protected boolean mustRewriteQuery(SpanQuery spanQuery)
public boolean getExpandMultiTermQuery()
public void setExpandMultiTermQuery(boolean expandMultiTermQuery)
public boolean isCachedTokenStream()
public TokenStream getTokenStream()
public void setWrapIfNotCachingTokenFilter(boolean wrap)
TokenStream
s that are not of the type
CachingTokenFilter
are wrapped in a CachingTokenFilter
to
ensure an efficient reset - if you are already using a different caching
TokenStream
impl and you don't want it to be wrapped, set this to
false.wrap
- protected final void setMaxDocCharsToAnalyze(int maxDocCharsToAnalyze)