Class FieldQuery
- java.lang.Object
-
- org.apache.lucene.search.vectorhighlight.FieldQuery
-
public class FieldQuery extends java.lang.Object
FieldQuery breaks down query object into terms/phrases and keeps them in a QueryPhraseMap structure.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
FieldQuery.QueryPhraseMap
Internal structure of a query for highlighting: represents a nested query structure
-
Field Summary
Fields Modifier and Type Field Description (package private) boolean
fieldMatch
private static int
MAX_MTQ_TERMS
(package private) java.util.Map<java.lang.String,FieldQuery.QueryPhraseMap>
rootMaps
(package private) int
termOrPhraseNumber
(package private) java.util.Map<java.lang.String,java.util.Set<java.lang.String>>
termSetMap
-
Constructor Summary
Constructors Constructor Description FieldQuery(Query query, boolean phraseHighlight, boolean fieldMatch)
For backwards compatibility you can initialize FieldQuery without an IndexReader, which is only required to support MultiTermQueryFieldQuery(Query query, IndexReader reader, boolean phraseHighlight, boolean fieldMatch)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
checkOverlap(java.util.Collection<Query> expandQueries, Term[] src, Term[] dest, int slop, float boost)
private void
checkOverlap(java.util.Collection<Query> expandQueries, PhraseQuery a, float aBoost, PhraseQuery b, float bBoost)
(package private) java.util.Collection<Query>
expand(java.util.Collection<Query> flatQueries)
protected void
flatten(Query sourceQuery, IndexSearcher searcher, java.util.Collection<Query> flatQueries, float boost)
FieldQuery.QueryPhraseMap
getFieldTermMap(java.lang.String fieldName, java.lang.String term)
private java.lang.String
getKey(Query query)
private FieldQuery.QueryPhraseMap
getRootMap(java.lang.String fieldName)
(package private) FieldQuery.QueryPhraseMap
getRootMap(Query query)
(package private) java.util.Set<java.lang.String>
getTermSet(java.lang.String field)
private java.util.Set<java.lang.String>
getTermSet(Query query)
(package private) int
nextTermOrPhraseNumber()
(package private) void
saveTerms(java.util.Collection<Query> flatQueries, IndexSearcher searcher)
FieldQuery.QueryPhraseMap
searchPhrase(java.lang.String fieldName, java.util.List<FieldTermStack.TermInfo> phraseCandidate)
-
-
-
Field Detail
-
fieldMatch
final boolean fieldMatch
-
rootMaps
java.util.Map<java.lang.String,FieldQuery.QueryPhraseMap> rootMaps
-
termSetMap
java.util.Map<java.lang.String,java.util.Set<java.lang.String>> termSetMap
-
termOrPhraseNumber
int termOrPhraseNumber
-
MAX_MTQ_TERMS
private static final int MAX_MTQ_TERMS
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
FieldQuery
public FieldQuery(Query query, IndexReader reader, boolean phraseHighlight, boolean fieldMatch) throws java.io.IOException
- Throws:
java.io.IOException
-
FieldQuery
FieldQuery(Query query, boolean phraseHighlight, boolean fieldMatch) throws java.io.IOException
For backwards compatibility you can initialize FieldQuery without an IndexReader, which is only required to support MultiTermQuery- Throws:
java.io.IOException
-
-
Method Detail
-
flatten
protected void flatten(Query sourceQuery, IndexSearcher searcher, java.util.Collection<Query> flatQueries, float boost) throws java.io.IOException
- Throws:
java.io.IOException
-
checkOverlap
private void checkOverlap(java.util.Collection<Query> expandQueries, PhraseQuery a, float aBoost, PhraseQuery b, float bBoost)
-
checkOverlap
private void checkOverlap(java.util.Collection<Query> expandQueries, Term[] src, Term[] dest, int slop, float boost)
-
getRootMap
FieldQuery.QueryPhraseMap getRootMap(Query query)
-
getKey
private java.lang.String getKey(Query query)
-
saveTerms
void saveTerms(java.util.Collection<Query> flatQueries, IndexSearcher searcher) throws java.io.IOException
- Throws:
java.io.IOException
-
getTermSet
private java.util.Set<java.lang.String> getTermSet(Query query)
-
getTermSet
java.util.Set<java.lang.String> getTermSet(java.lang.String field)
-
getFieldTermMap
public FieldQuery.QueryPhraseMap getFieldTermMap(java.lang.String fieldName, java.lang.String term)
- Returns:
- QueryPhraseMap
-
searchPhrase
public FieldQuery.QueryPhraseMap searchPhrase(java.lang.String fieldName, java.util.List<FieldTermStack.TermInfo> phraseCandidate)
- Returns:
- QueryPhraseMap
-
getRootMap
private FieldQuery.QueryPhraseMap getRootMap(java.lang.String fieldName)
-
nextTermOrPhraseNumber
int nextTermOrPhraseNumber()
-
-