public class MapperQueryParser
extends org.apache.lucene.queryparser.analyzing.AnalyzingQueryParser
MapperService in order to build smarter
queries based on the mapping information.
Also breaks fields with [type].[name] into a boolean query that must include the type as well as the query on the name.
| Modifier and Type | Class and Description |
|---|---|
static interface |
MapperQueryParser.CheckedBiFunction<T,U,R>
A BiFuntion that can throw an IOException
|
| Modifier and Type | Field and Description |
|---|---|
static java.util.Map<java.lang.String,FieldQueryExtension> |
FIELD_QUERY_EXTENSIONS |
DEFAULT_SPLIT_ON_WHITESPACE, jj_nt, token, token_sourceAND_OPERATOR, field, OR_OPERATORanalyzer, autoGenerateMultiTermSynonymsPhraseQuery, enableGraphQueries, enablePositionIncrements_ESCAPED_CHAR, _NUM_CHAR, _QUOTED_CHAR, _TERM_CHAR, _TERM_START_CHAR, _WHITESPACE, AND, BAREOPER, Boost, CARAT, COLON, DEFAULT, EOF, FUZZY_SLOP, LPAREN, MINUS, NOT, NUMBER, OR, PLUS, PREFIXTERM, QUOTED, Range, RANGE_GOOP, RANGE_QUOTED, RANGE_TO, RANGEEX_END, RANGEEX_START, RANGEIN_END, RANGEIN_START, REGEXPTERM, RPAREN, STAR, TERM, tokenImage, WILDTERM| Constructor and Description |
|---|
MapperQueryParser(QueryShardContext context) |
| Modifier and Type | Method and Description |
|---|---|
protected org.apache.lucene.search.spans.SpanQuery |
analyzeGraphPhrase(org.apache.lucene.analysis.TokenStream source,
java.lang.String field,
int phraseSlop)
|
static org.apache.lucene.search.spans.SpanQuery |
analyzeGraphPhraseWithLimit(org.apache.lucene.analysis.TokenStream source,
java.lang.String field,
int phraseSlop,
MapperQueryParser.CheckedBiFunction<org.apache.lucene.analysis.TokenStream,java.lang.String,org.apache.lucene.search.spans.SpanQuery> spanQueryFunc,
boolean isHardLimit)
Overrides
QueryBuilder.analyzeGraphPhrase(TokenStream, String, int) to add
a limit (see BooleanQuery.getMaxClauseCount()) to the number of SpanQuery
that this method can create. |
protected org.apache.lucene.search.Query |
createFieldQuery(org.apache.lucene.analysis.Analyzer analyzer,
org.apache.lucene.search.BooleanClause.Occur operator,
java.lang.String field,
java.lang.String queryText,
boolean quoted,
int phraseSlop)
Checks if graph analysis should be enabled for the field depending
on the provided
Analyzer |
protected org.apache.lucene.search.Query |
getBooleanQuery(java.util.List<org.apache.lucene.search.BooleanClause> clauses) |
protected org.apache.lucene.search.Query |
getBooleanQueryCoordDisabled(java.util.List<org.apache.lucene.search.BooleanClause> clauses)
Deprecated.
review all use of this, don't rely on coord
|
org.apache.lucene.search.Query |
getFieldQuery(java.lang.String field,
java.lang.String queryText,
boolean quoted) |
protected org.apache.lucene.search.Query |
getFieldQuery(java.lang.String field,
java.lang.String queryText,
int slop) |
protected org.apache.lucene.search.Query |
getFuzzyQuery(java.lang.String field,
java.lang.String termStr,
java.lang.String minSimilarity) |
protected org.apache.lucene.search.Query |
getPrefixQuery(java.lang.String field,
java.lang.String termStr) |
protected org.apache.lucene.search.Query |
getRangeQuery(java.lang.String field,
java.lang.String part1,
java.lang.String part2,
boolean startInclusive,
boolean endInclusive) |
protected org.apache.lucene.search.Query |
getRegexpQuery(java.lang.String field,
java.lang.String termStr) |
protected org.apache.lucene.search.Query |
getWildcardQuery(java.lang.String field,
java.lang.String termStr) |
protected org.apache.lucene.search.Query |
newFuzzyQuery(org.apache.lucene.index.Term term,
float minimumSimilarity,
int prefixLength) |
protected org.apache.lucene.search.Query |
newMatchAllDocsQuery() |
protected org.apache.lucene.search.Query |
newTermQuery(org.apache.lucene.index.Term term) |
org.apache.lucene.search.Query |
parse(java.lang.String query) |
void |
reset(QueryParserSettings settings) |
static boolean |
shouldApplyGraphPhraseLimit()
Checks the value of the JVM option
es.query.write.apply_graph_phrase_limit to determine
if the analysis of graph phrase should be limited to BooleanQuery.getMaxClauseCount(). |
getFuzzyQueryClause, Conjunction, disable_tracing, enable_tracing, generateParseException, getNextToken, getSplitOnWhitespace, getToken, Modifiers, MultiTerm, Query, ReInit, ReInit, setAutoGeneratePhraseQueries, setSplitOnWhitespace, Term, TopLevelQueryaddClause, addMultiTermClauses, escape, getAllowLeadingWildcard, getAnalyzeRangeTerms, getAutoGeneratePhraseQueries, getDateResolution, getDefaultOperator, getField, getFuzzyMinSim, getFuzzyPrefixLength, getLocale, getLowercaseExpandedTerms, getMaxDeterminizedStates, getMultiTermRewriteMethod, getPhraseSlop, getTimeZone, init, newBooleanClause, newFieldQuery, newPrefixQuery, newRangeQuery, newRegexpQuery, newWildcardQuery, setAllowLeadingWildcard, setAnalyzeRangeTerms, setDateResolution, setDateResolution, setDefaultOperator, setFuzzyMinSim, setFuzzyPrefixLength, setLocale, setLowercaseExpandedTerms, setMaxDeterminizedStates, setMultiTermRewriteMethod, setPhraseSlop, setTimeZoneadd, analyzeBoolean, analyzeGraphBoolean, analyzeMultiBoolean, analyzeMultiPhrase, analyzePhrase, analyzeTerm, createBooleanQuery, createBooleanQuery, createFieldQuery, createMinShouldMatchQuery, createPhraseQuery, createPhraseQuery, createSpanQuery, getAnalyzer, getAutoGenerateMultiTermSynonymsPhraseQuery, getEnableGraphQueries, getEnablePositionIncrements, newBooleanQuery, newGraphSynonymQuery, newMultiPhraseQueryBuilder, newSynonymQuery, setAnalyzer, setAutoGenerateMultiTermSynonymsPhraseQuery, setEnableGraphQueries, setEnablePositionIncrementspublic static final java.util.Map<java.lang.String,FieldQueryExtension> FIELD_QUERY_EXTENSIONS
public MapperQueryParser(QueryShardContext context)
public void reset(QueryParserSettings settings)
protected org.apache.lucene.search.Query newTermQuery(org.apache.lucene.index.Term term)
newTermQuery in class org.apache.lucene.util.QueryBuilderprotected org.apache.lucene.search.Query newMatchAllDocsQuery()
newMatchAllDocsQuery in class org.apache.lucene.queryparser.classic.QueryParserBasepublic org.apache.lucene.search.Query getFieldQuery(java.lang.String field,
java.lang.String queryText,
boolean quoted)
throws org.apache.lucene.queryparser.classic.ParseException
getFieldQuery in class org.apache.lucene.queryparser.classic.QueryParserBaseorg.apache.lucene.queryparser.classic.ParseExceptionprotected org.apache.lucene.search.Query getFieldQuery(java.lang.String field,
java.lang.String queryText,
int slop)
throws org.apache.lucene.queryparser.classic.ParseException
getFieldQuery in class org.apache.lucene.queryparser.classic.QueryParserBaseorg.apache.lucene.queryparser.classic.ParseExceptionprotected org.apache.lucene.search.Query getRangeQuery(java.lang.String field,
java.lang.String part1,
java.lang.String part2,
boolean startInclusive,
boolean endInclusive)
throws org.apache.lucene.queryparser.classic.ParseException
getRangeQuery in class org.apache.lucene.queryparser.classic.QueryParserBaseorg.apache.lucene.queryparser.classic.ParseExceptionprotected org.apache.lucene.search.Query getFuzzyQuery(java.lang.String field,
java.lang.String termStr,
java.lang.String minSimilarity)
throws org.apache.lucene.queryparser.classic.ParseException
org.apache.lucene.queryparser.classic.ParseExceptionprotected org.apache.lucene.search.Query newFuzzyQuery(org.apache.lucene.index.Term term,
float minimumSimilarity,
int prefixLength)
newFuzzyQuery in class org.apache.lucene.queryparser.classic.QueryParserBaseprotected org.apache.lucene.search.Query getPrefixQuery(java.lang.String field,
java.lang.String termStr)
throws org.apache.lucene.queryparser.classic.ParseException
getPrefixQuery in class org.apache.lucene.queryparser.analyzing.AnalyzingQueryParserorg.apache.lucene.queryparser.classic.ParseExceptionprotected org.apache.lucene.search.Query getWildcardQuery(java.lang.String field,
java.lang.String termStr)
throws org.apache.lucene.queryparser.classic.ParseException
getWildcardQuery in class org.apache.lucene.queryparser.analyzing.AnalyzingQueryParserorg.apache.lucene.queryparser.classic.ParseExceptionprotected org.apache.lucene.search.Query getRegexpQuery(java.lang.String field,
java.lang.String termStr)
throws org.apache.lucene.queryparser.classic.ParseException
getRegexpQuery in class org.apache.lucene.queryparser.classic.QueryParserBaseorg.apache.lucene.queryparser.classic.ParseException@Deprecated
protected org.apache.lucene.search.Query getBooleanQueryCoordDisabled(java.util.List<org.apache.lucene.search.BooleanClause> clauses)
throws org.apache.lucene.queryparser.classic.ParseException
org.apache.lucene.queryparser.classic.ParseExceptionprotected org.apache.lucene.search.Query getBooleanQuery(java.util.List<org.apache.lucene.search.BooleanClause> clauses)
throws org.apache.lucene.queryparser.classic.ParseException
getBooleanQuery in class org.apache.lucene.queryparser.classic.QueryParserBaseorg.apache.lucene.queryparser.classic.ParseExceptionpublic org.apache.lucene.search.Query parse(java.lang.String query)
throws org.apache.lucene.queryparser.classic.ParseException
parse in class org.apache.lucene.queryparser.classic.QueryParserBaseorg.apache.lucene.queryparser.classic.ParseExceptionprotected org.apache.lucene.search.Query createFieldQuery(org.apache.lucene.analysis.Analyzer analyzer,
org.apache.lucene.search.BooleanClause.Occur operator,
java.lang.String field,
java.lang.String queryText,
boolean quoted,
int phraseSlop)
AnalyzercreateFieldQuery in class org.apache.lucene.util.QueryBuilderprotected org.apache.lucene.search.spans.SpanQuery analyzeGraphPhrase(org.apache.lucene.analysis.TokenStream source,
java.lang.String field,
int phraseSlop)
throws java.io.IOException
analyzeGraphPhrase in class org.apache.lucene.util.QueryBuilderjava.io.IOExceptionpublic static boolean shouldApplyGraphPhraseLimit()
es.query.write.apply_graph_phrase_limit to determine
if the analysis of graph phrase should be limited to BooleanQuery.getMaxClauseCount().
The JVM option can only be set to true (false is the default value), any other value
will throw an IllegalArgumentException.public static org.apache.lucene.search.spans.SpanQuery analyzeGraphPhraseWithLimit(org.apache.lucene.analysis.TokenStream source,
java.lang.String field,
int phraseSlop,
MapperQueryParser.CheckedBiFunction<org.apache.lucene.analysis.TokenStream,java.lang.String,org.apache.lucene.search.spans.SpanQuery> spanQueryFunc,
boolean isHardLimit)
throws java.io.IOException
QueryBuilder.analyzeGraphPhrase(TokenStream, String, int) to add
a limit (see BooleanQuery.getMaxClauseCount()) to the number of SpanQuery
that this method can create.java.io.IOException