public class PhraseWildcardQuery extends Query
PhraseQuery, built with one or more MultiTermQuery
 that provides term expansions for multi-terms (one of the expanded terms must match).
 
 Its main advantage is to control the total number of expansions across all MultiTermQuery
 and across all segments.
 
 Use the PhraseWildcardQuery.Builder to build a PhraseWildcardQuery.
 
 This query is similar to MultiPhraseQuery, but it handles, controls and optimizes the
 multi-term expansions.
 
 This query is equivalent to building an ordered SpanNearQuery
 with a list of SpanTermQuery and
 SpanMultiTermQueryWrapper.
 But it optimizes the multi-term expansions and the segment accesses.
 It first resolves the single-terms to early stop if some does not match. Then
 it expands each multi-term sequentially, stopping immediately if one does not
 match. It detects the segments that do not match to skip them for the next
 expansions. This often avoid expanding the other multi-terms on some or
 even all segments. And finally it controls the total number of expansions.
 
Immutable.
| Modifier and Type | Class and Description | 
|---|---|
| static class  | PhraseWildcardQuery.BuilderBuilds a  PhraseWildcardQuery. | 
| protected static class  | PhraseWildcardQuery.MultiTermPhrase term with expansions. | 
| protected static class  | PhraseWildcardQuery.PhraseTermAll  PhraseWildcardQuery.PhraseTermare light and immutable. | 
| protected class  | PhraseWildcardQuery.SegmentTermsSizeComparatorCompares segments based of the number of terms they contain. | 
| protected static class  | PhraseWildcardQuery.SingleTermPhrase term with no expansion. | 
| static class  | PhraseWildcardQuery.TermBytesTermStateHolds a pair of term bytes - term state. | 
| protected static class  | PhraseWildcardQuery.TermData | 
| protected static class  | PhraseWildcardQuery.TermsDataHolds the  TermStateandTermStatisticsfor all the matched
 and collectedTerm, for all phrase terms, for all segments. | 
| static class  | PhraseWildcardQuery.TermStatsAccumulates the doc freq and total term freq. | 
| protected static class  | PhraseWildcardQuery.TestCountersTest counters incremented when assertions are enabled. | 
| Modifier and Type | Field and Description | 
|---|---|
| protected String | field | 
| protected int | maxMultiTermExpansions | 
| protected static Query | NO_MATCH_QUERY | 
| protected List<PhraseWildcardQuery.PhraseTerm> | phraseTerms | 
| protected boolean | segmentOptimizationEnabled | 
| protected int | slop | 
| Modifier | Constructor and Description | 
|---|---|
| protected  | PhraseWildcardQuery(String field,
                   List<PhraseWildcardQuery.PhraseTerm> phraseTerms,
                   int slop,
                   int maxMultiTermExpansions,
                   boolean segmentOptimizationEnabled) | 
classHash, sameClassAs, toStringprotected static final Query NO_MATCH_QUERY
protected final String field
protected final List<PhraseWildcardQuery.PhraseTerm> phraseTerms
protected final int slop
protected final int maxMultiTermExpansions
protected final boolean segmentOptimizationEnabled
protected PhraseWildcardQuery(String field, List<PhraseWildcardQuery.PhraseTerm> phraseTerms, int slop, int maxMultiTermExpansions, boolean segmentOptimizationEnabled)
public String getField()
public Query rewrite(IndexReader reader) throws IOException
rewrite in class QueryIOExceptionpublic void visit(QueryVisitor visitor)
public Weight createWeight(IndexSearcher searcher, ScoreMode scoreMode, float boost) throws IOException
createWeight in class QueryIOExceptionprotected PhraseWildcardQuery.TermsData createTermsData(int numSegments)
PhraseWildcardQuery.TermsData.protected Weight earlyStopWeight()
protected Weight noMatchWeight()
protected int collectSingleTermData(PhraseWildcardQuery.SingleTerm singleTerm, IndexSearcher searcher, List<LeafReaderContext> segments, PhraseWildcardQuery.TermsData termsData) throws IOException
TermState and TermStatistics for a single-term
 without expansion.termsData - receives the collected data.IOExceptionprotected int collectMultiTermData(PhraseWildcardQuery.MultiTerm multiTerm, IndexSearcher searcher, List<LeafReaderContext> segments, int remainingMultiTerms, int maxExpansionsForTerm, PhraseWildcardQuery.TermsData termsData) throws IOException
TermState and TermStatistics for a multi-term
 with expansion.remainingMultiTerms - the number of remaining multi-terms to process,
                            including the current one, excluding the multi-terms already processed.termsData - receives the collected data.IOExceptionprotected boolean shouldOptimizeSegments()
protected Map<BytesRef,PhraseWildcardQuery.TermStats> createTermStatsMap(PhraseWildcardQuery.MultiTerm multiTerm)
PhraseWildcardQuery.TermStats map for a PhraseWildcardQuery.MultiTerm.protected List<PhraseWildcardQuery.TermBytesTermState> collectMultiTermDataForSegment(PhraseWildcardQuery.MultiTerm multiTerm, LeafReaderContext leafReaderContext, int remainingExpansions, MutableValueBool shouldStopSegmentIteration, Map<BytesRef,PhraseWildcardQuery.TermStats> termStatsMap) throws IOException
TermState list and TermStatistics for a multi-term
 on a specific index segment.remainingExpansions - the number of remaining expansions allowed
                                   for the segment.shouldStopSegmentIteration - to be set to true to stop the segment
                                   iteration calling this method repeatedly.termStatsMap - receives the collected PhraseWildcardQuery.TermStats across all segments.IOExceptionprotected TermsEnum createTermsEnum(PhraseWildcardQuery.MultiTerm multiTerm, LeafReaderContext leafReaderContext) throws IOException
TermsEnum for the given PhraseWildcardQuery.MultiTerm and segment.IOExceptionprotected void collectMultiTermStats(IndexSearcher searcher, Map<BytesRef,PhraseWildcardQuery.TermStats> termStatsMap, PhraseWildcardQuery.TermsData termsData, PhraseWildcardQuery.TermData termData) throws IOException
termStatsMap - input map of already collected PhraseWildcardQuery.TermStats.termsData - receives the TermStatistics computed for all PhraseWildcardQuery.TermStats.termData - receives all the collected Term.IOExceptionprotected void checkTermsHavePositions(Terms terms)
Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.