org.apache.lucene.queryParser.standard
Class StandardQueryParser

java.lang.Object
  extended by org.apache.lucene.queryParser.core.QueryParserHelper
      extended by org.apache.lucene.queryParser.standard.StandardQueryParser
Direct Known Subclasses:
PrecedenceQueryParser

public class StandardQueryParser
extends QueryParserHelper

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:

The syntax for query strings is as follows (copied from the old QueryParser javadoc):

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.

See Also:
StandardQueryParser, StandardQueryConfigHandler, StandardSyntaxParser, StandardQueryNodeProcessorPipeline, StandardQueryTreeBuilder

Constructor Summary
StandardQueryParser()
          Constructs a StandardQueryParser object.
StandardQueryParser(Analyzer analyzer)
          Constructs a StandardQueryParser object and sets an Analyzer to it.
 
Method Summary
 boolean getAllowLeadingWildcard()
           
 Analyzer getAnalyzer()
           
 DefaultOperatorAttribute.Operator getDefaultOperator()
          Gets implicit operator setting, which will be either DefaultOperatorAttribute.Operator.AND or DefaultOperatorAttribute.Operator.OR.
 boolean getEnablePositionIncrements()
           
 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()
           
 MultiTermQuery.RewriteMethod getMultiTermRewriteMethod()
           
 int getPhraseSlop()
          Gets the default slop for phrases.
 Collator getRangeCollator()
           
 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)
           
 void setDateResolution(Map<CharSequence,DateTools.Resolution> dateRes)
           
 void setDefaultOperator(DefaultOperatorAttribute.Operator operator)
          Sets the boolean operator of the QueryParser.
 void setDefaultPhraseSlop(int defaultPhraseSlop)
          Sets the default slop for phrases.
 void setEnablePositionIncrements(boolean enabled)
          Set to true to enable position increments in result query.
 void setFieldsBoost(Map<String,Float> boosts)
           
 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)
           
 void setMultiTermRewriteMethod(MultiTermQuery.RewriteMethod method)
          By default, it uses MultiTermQuery.CONSTANT_SCORE_AUTO_REWRITE_DEFAULT when creating a prefix, wildcard and range queries.
 void setRangeCollator(Collator collator)
          Sets the collator used to determine index term inclusion in ranges for RangeQuerys.
 String toString()
           
 
Methods inherited from class org.apache.lucene.queryParser.core.QueryParserHelper
getQueryBuilder, getQueryConfigHandler, getQueryNodeProcessor, getSyntaxParser, setQueryBuilder, setQueryConfigHandler, setQueryNodeProcessor, setSyntaxParser
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

StandardQueryParser

public StandardQueryParser()
Constructs a StandardQueryParser object.


StandardQueryParser

public StandardQueryParser(Analyzer analyzer)
Constructs a StandardQueryParser object and sets an Analyzer to it. The same as:

Parameters:
analyzer - the analyzer to be used by this query parser helper
Method Detail

toString

public String toString()
Overrides:
toString in class Object

parse

public Query parse(String query,
                   String defaultField)
            throws QueryNodeException
Overrides QueryParserHelper.parse(String, String) so it casts the return object to Query. For more reference about this method, check QueryParserHelper.parse(String, String).

Overrides:
parse in class QueryParserHelper
Parameters:
query - the query string
defaultField - the default field used by the text parser
Returns:
the object built from the query
Throws:
QueryNodeException - if something wrong happens along the three phases

getDefaultOperator

public DefaultOperatorAttribute.Operator getDefaultOperator()
Gets implicit operator setting, which will be either DefaultOperatorAttribute.Operator.AND or DefaultOperatorAttribute.Operator.OR.


setRangeCollator

public void setRangeCollator(Collator collator)
Sets the collator used to determine index term inclusion in ranges for RangeQuerys.

WARNING: Setting the rangeCollator to a non-null collator using this method will cause every single index Term in the Field referenced by lowerTerm and/or upperTerm to be examined. Depending on the number of index Terms in this Field, the operation could be very slow.

Parameters:
collator - the collator to use when constructing RangeQueryNodes

getRangeCollator

public Collator getRangeCollator()
Returns:
the collator used to determine index term inclusion in ranges for RangeQuerys.

setDefaultOperator

public void setDefaultOperator(DefaultOperatorAttribute.Operator operator)
Sets the boolean operator of the QueryParser. In default mode ( DefaultOperatorAttribute.Operator.OR) terms without any modifiers are considered optional: for example capital of Hungary is equal to capital OR of OR Hungary.
In DefaultOperatorAttribute.Operator.AND mode terms are considered to be in conjunction: the above mentioned query is parsed as capital AND of AND Hungary


setLowercaseExpandedTerms

public void setLowercaseExpandedTerms(boolean lowercaseExpandedTerms)
Set to 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.


getLowercaseExpandedTerms

public boolean getLowercaseExpandedTerms()
See Also:
setLowercaseExpandedTerms(boolean)

setAllowLeadingWildcard

public void setAllowLeadingWildcard(boolean allowLeadingWildcard)
Set to 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.


setEnablePositionIncrements

public void setEnablePositionIncrements(boolean enabled)
Set to 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.


getEnablePositionIncrements

public boolean getEnablePositionIncrements()
See Also:
setEnablePositionIncrements(boolean)

setMultiTermRewriteMethod

public void setMultiTermRewriteMethod(MultiTermQuery.RewriteMethod method)
By default, it uses 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.


getMultiTermRewriteMethod

public MultiTermQuery.RewriteMethod getMultiTermRewriteMethod()
See Also:
setMultiTermRewriteMethod(org.apache.lucene.search.MultiTermQuery.RewriteMethod)

setMultiFields

public void setMultiFields(CharSequence[] fields)

setFuzzyPrefixLength

public void setFuzzyPrefixLength(int fuzzyPrefixLength)
Set the prefix length for fuzzy queries. Default is 0.

Parameters:
fuzzyPrefixLength - The fuzzyPrefixLength to set.

setLocale

public void setLocale(Locale locale)
Set locale used by date range parsing.


getLocale

public Locale getLocale()
Returns current locale, allowing access by subclasses.


setDefaultPhraseSlop

public void setDefaultPhraseSlop(int defaultPhraseSlop)
Sets the default slop for phrases. If zero, then exact phrase matches are required. Default value is zero.


setAnalyzer

public void setAnalyzer(Analyzer analyzer)

getAnalyzer

public Analyzer getAnalyzer()

getAllowLeadingWildcard

public boolean getAllowLeadingWildcard()
See Also:
setAllowLeadingWildcard(boolean)

getFuzzyMinSim

public float getFuzzyMinSim()
Get the minimal similarity for fuzzy queries.


getFuzzyPrefixLength

public int getFuzzyPrefixLength()
Get the prefix length for fuzzy queries.

Returns:
Returns the fuzzyPrefixLength.

getPhraseSlop

public int getPhraseSlop()
Gets the default slop for phrases.


setFuzzyMinSim

public void setFuzzyMinSim(float fuzzyMinSim)
Set the minimum similarity for fuzzy queries. Default is defined on FuzzyQuery.defaultMinSimilarity.


setFieldsBoost

public void setFieldsBoost(Map<String,Float> boosts)

setDateResolution

public void setDateResolution(DateTools.Resolution dateResolution)

setDateResolution

public void setDateResolution(Map<CharSequence,DateTools.Resolution> dateRes)


Copyright © 2000-2011 Apache Software Foundation. All Rights Reserved.