public class StandardQueryParser extends QueryParserHelper implements CommonQueryParserConfiguration
This class is a helper that enables users to easily use the Lucene query parser.
To construct a Query object from a query string, use the
parse(String, String) method:
To change any configuration before parsing the query string do, for example:
StandardQueryParser is a
StandardQueryConfigHandler The syntax for query strings is as follows (copied from the old QueryParser javadoc):
+) or a minus (-) sign, indicating that
the clause is required or prohibited respectively; or
+/- prefix to require any of a set of terms.
Query ::= ( Clause )*
Clause ::= ["+", "-"] [<TERM> ":"] ( <TERM> | "(" Query ")" )
Examples of appropriately formatted queries can be found in the query syntax documentation.
The text parser used by this helper is a StandardSyntaxParser.
The query node processor used by this helper is a
StandardQueryNodeProcessorPipeline.
The builder used by this helper is a StandardQueryTreeBuilder.
| Constructor and Description |
|---|
StandardQueryParser()
Constructs a
StandardQueryParser object. |
StandardQueryParser(Analyzer analyzer)
Constructs a
StandardQueryParser object and sets an
Analyzer to it. |
| Modifier and Type | Method and Description |
|---|---|
boolean |
getAllowLeadingWildcard() |
Analyzer |
getAnalyzer() |
DateTools.Resolution |
getDateResolution()
Returns the default
DateTools.Resolution used for certain field when
no DateTools.Resolution is defined for this field. |
Map<CharSequence,DateTools.Resolution> |
getDateResolutionMap()
Returns the field to
DateTools.Resolution map used to normalize each date field. |
StandardQueryConfigHandler.Operator |
getDefaultOperator()
Gets implicit operator setting, which will be either
StandardQueryConfigHandler.Operator.AND
or StandardQueryConfigHandler.Operator.OR. |
boolean |
getEnablePositionIncrements() |
Map<String,Float> |
getFieldsBoost()
Returns the field to boost map used to set boost for each field.
|
float |
getFuzzyMinSim()
Get the minimal similarity for fuzzy queries.
|
int |
getFuzzyPrefixLength()
Get the prefix length for fuzzy queries.
|
Locale |
getLocale()
Returns current locale, allowing access by subclasses.
|
boolean |
getLowercaseExpandedTerms() |
void |
getMultiFields(CharSequence[] fields)
Returns the fields used to expand the query when the field for a
certain query is
null |
MultiTermQuery.RewriteMethod |
getMultiTermRewriteMethod() |
Map<String,NumericConfig> |
getNumericConfigMap() |
int |
getPhraseSlop()
Gets the default slop for phrases.
|
TimeZone |
getTimeZone() |
Query |
parse(String query,
String defaultField)
Overrides
QueryParserHelper.parse(String, String) so it casts the
return object to Query. |
void |
setAllowLeadingWildcard(boolean allowLeadingWildcard)
Set to
true to allow leading wildcard characters. |
void |
setAnalyzer(Analyzer analyzer) |
void |
setDateResolution(DateTools.Resolution dateResolution)
Sets the default
DateTools.Resolution used for certain field when
no DateTools.Resolution is defined for this field. |
void |
setDateResolution(Map<CharSequence,DateTools.Resolution> dateRes)
Deprecated.
this method was renamed to
setDateResolutionMap(Map) |
void |
setDateResolutionMap(Map<CharSequence,DateTools.Resolution> dateRes)
Sets the
DateTools.Resolution used for each field |
void |
setDefaultOperator(StandardQueryConfigHandler.Operator operator)
Sets the boolean operator of the QueryParser.
|
void |
setDefaultPhraseSlop(int defaultPhraseSlop)
Deprecated.
renamed to
setPhraseSlop(int) |
void |
setEnablePositionIncrements(boolean enabled)
Set to
true to enable position increments in result query. |
void |
setFieldsBoost(Map<String,Float> boosts)
Sets the boost used for each field.
|
void |
setFuzzyMinSim(float fuzzyMinSim)
Set the minimum similarity for fuzzy queries.
|
void |
setFuzzyPrefixLength(int fuzzyPrefixLength)
Set the prefix length for fuzzy queries.
|
void |
setLocale(Locale locale)
Set locale used by date range parsing.
|
void |
setLowercaseExpandedTerms(boolean lowercaseExpandedTerms)
Set to
true to allow leading wildcard characters. |
void |
setMultiFields(CharSequence[] fields)
Set the fields a query should be expanded to when the field is
null |
void |
setMultiTermRewriteMethod(MultiTermQuery.RewriteMethod method)
By default, it uses
MultiTermQuery.CONSTANT_SCORE_AUTO_REWRITE_DEFAULT when creating a
prefix, wildcard and range queries. |
void |
setNumericConfigMap(Map<String,NumericConfig> numericConfigMap) |
void |
setPhraseSlop(int defaultPhraseSlop)
Sets the default slop for phrases.
|
void |
setTimeZone(TimeZone timeZone) |
String |
toString() |
getQueryBuilder, getQueryConfigHandler, getQueryNodeProcessor, getSyntaxParser, setQueryBuilder, setQueryConfigHandler, setQueryNodeProcessor, setSyntaxParserpublic StandardQueryParser()
StandardQueryParser object.public StandardQueryParser(Analyzer analyzer)
StandardQueryParser object and sets an
Analyzer to it. The same as:
analyzer - the analyzer to be used by this query parser helperpublic Query parse(String query, String defaultField) throws QueryNodeException
QueryParserHelper.parse(String, String) so it casts the
return object to Query. For more reference about this method, check
QueryParserHelper.parse(String, String).parse in class QueryParserHelperquery - the query stringdefaultField - the default field used by the text parserQueryNodeException - if something wrong happens along the three phasespublic StandardQueryConfigHandler.Operator getDefaultOperator()
StandardQueryConfigHandler.Operator.AND
or StandardQueryConfigHandler.Operator.OR.public void setDefaultOperator(StandardQueryConfigHandler.Operator operator)
StandardQueryConfigHandler.Operator.OR) terms without any modifiers are considered optional:
for example capital of Hungary is equal to
capital OR of OR Hungary.StandardQueryConfigHandler.Operator.AND mode terms are considered to be in conjunction: the
above mentioned query is parsed as capital AND of AND Hungarypublic void setLowercaseExpandedTerms(boolean lowercaseExpandedTerms)
true to allow leading wildcard characters.
When set, * or ? are allowed as the first
character of a PrefixQuery and WildcardQuery. Note that this can produce
very slow queries on big indexes.
Default: false.
setLowercaseExpandedTerms in interface CommonQueryParserConfigurationpublic boolean getLowercaseExpandedTerms()
getLowercaseExpandedTerms in interface CommonQueryParserConfigurationsetLowercaseExpandedTerms(boolean)public void setAllowLeadingWildcard(boolean allowLeadingWildcard)
true to allow leading wildcard characters.
When set, * or ? are allowed as the first
character of a PrefixQuery and WildcardQuery. Note that this can produce
very slow queries on big indexes.
Default: false.
setAllowLeadingWildcard in interface CommonQueryParserConfigurationpublic void setEnablePositionIncrements(boolean enabled)
true to enable position increments in result query.
When set, result phrase and multi-phrase queries will be aware of position increments. Useful when e.g. a StopFilter increases the position increment of the token that follows an omitted token.
Default: false.
setEnablePositionIncrements in interface CommonQueryParserConfigurationpublic boolean getEnablePositionIncrements()
getEnablePositionIncrements in interface CommonQueryParserConfigurationsetEnablePositionIncrements(boolean)public void setMultiTermRewriteMethod(MultiTermQuery.RewriteMethod method)
MultiTermQuery.CONSTANT_SCORE_AUTO_REWRITE_DEFAULT when creating a
prefix, wildcard and range queries. This implementation is generally
preferable because it a) Runs faster b) Does not have the scarcity of terms
unduly influence score c) avoids any TooManyListenersException
exception. However, if your application really needs to use the
old-fashioned boolean queries expansion rewriting and the above points are
not relevant then use this change the rewrite method.setMultiTermRewriteMethod in interface CommonQueryParserConfigurationpublic MultiTermQuery.RewriteMethod getMultiTermRewriteMethod()
getMultiTermRewriteMethod in interface CommonQueryParserConfigurationsetMultiTermRewriteMethod(org.apache.lucene.search.MultiTermQuery.RewriteMethod)public void setMultiFields(CharSequence[] fields)
nullfields - the fields used to expand the querypublic void getMultiFields(CharSequence[] fields)
nullfields - the fields used to expand the querypublic void setFuzzyPrefixLength(int fuzzyPrefixLength)
setFuzzyPrefixLength in interface CommonQueryParserConfigurationfuzzyPrefixLength - The fuzzyPrefixLength to set.public void setNumericConfigMap(Map<String,NumericConfig> numericConfigMap)
public Map<String,NumericConfig> getNumericConfigMap()
public void setLocale(Locale locale)
setLocale in interface CommonQueryParserConfigurationpublic Locale getLocale()
getLocale in interface CommonQueryParserConfigurationpublic void setTimeZone(TimeZone timeZone)
setTimeZone in interface CommonQueryParserConfigurationpublic TimeZone getTimeZone()
getTimeZone in interface CommonQueryParserConfiguration@Deprecated public void setDefaultPhraseSlop(int defaultPhraseSlop)
setPhraseSlop(int)public void setPhraseSlop(int defaultPhraseSlop)
setPhraseSlop in interface CommonQueryParserConfigurationpublic void setAnalyzer(Analyzer analyzer)
public Analyzer getAnalyzer()
getAnalyzer in interface CommonQueryParserConfigurationpublic boolean getAllowLeadingWildcard()
getAllowLeadingWildcard in interface CommonQueryParserConfigurationsetAllowLeadingWildcard(boolean)public float getFuzzyMinSim()
getFuzzyMinSim in interface CommonQueryParserConfigurationpublic int getFuzzyPrefixLength()
getFuzzyPrefixLength in interface CommonQueryParserConfigurationpublic int getPhraseSlop()
getPhraseSlop in interface CommonQueryParserConfigurationpublic void setFuzzyMinSim(float fuzzyMinSim)
FuzzyQuery.defaultMinSimilarity.setFuzzyMinSim in interface CommonQueryParserConfigurationpublic void setFieldsBoost(Map<String,Float> boosts)
boosts - a collection that maps a field to its boostpublic Map<String,Float> getFieldsBoost()
public void setDateResolution(DateTools.Resolution dateResolution)
DateTools.Resolution used for certain field when
no DateTools.Resolution is defined for this field.setDateResolution in interface CommonQueryParserConfigurationdateResolution - the default DateTools.Resolutionpublic DateTools.Resolution getDateResolution()
DateTools.Resolution used for certain field when
no DateTools.Resolution is defined for this field.DateTools.Resolution@Deprecated public void setDateResolution(Map<CharSequence,DateTools.Resolution> dateRes)
setDateResolutionMap(Map)DateTools.Resolution used for each fielddateRes - a collection that maps a field to its DateTools.Resolutionpublic Map<CharSequence,DateTools.Resolution> getDateResolutionMap()
DateTools.Resolution map used to normalize each date field.DateTools.Resolution mappublic void setDateResolutionMap(Map<CharSequence,DateTools.Resolution> dateRes)
DateTools.Resolution used for each fielddateRes - a collection that maps a field to its DateTools.ResolutionCopyright © 2000-2014 Apache Software Foundation. All Rights Reserved.