org.apache.lucene.queryparser.analyzing

## Class AnalyzingQueryParser

- java.lang.Object
- - org.apache.lucene.queryparser.classic.QueryParserBase
  - - org.apache.lucene.queryparser.classic.QueryParser
    - - org.apache.lucene.queryparser.analyzing.AnalyzingQueryParser

All Implemented Interfaces:
  QueryParserConstants, CommonQueryParserConfiguration

    public class AnalyzingQueryParser
    extends QueryParser

Overrides Lucene's default QueryParser so that Fuzzy-, Prefix-, Range-, and WildcardQuerys are also passed through the given analyzer, but wild card characters (like `*`) don't get removed from the search terms.

Warning: This class should only be used with analyzers that do not use stopwords or that add tokens. Also, several stemming analyzers are inappropriate: for example, GermanAnalyzer will turn `Häuser` into `hau`, but `H?user` will become `h?user` when using this parser and thus no match would be found (i.e. using this parser will be no improvement over QueryParser in such cases).

### Nested Class Summary

### Nested classes/interfaces inherited from class org.apache.lucene.queryparser.classic.QueryParser

`QueryParser.Operator`

### Nested classes/interfaces inherited from class org.apache.lucene.queryparser.classic.QueryParserBase

`QueryParserBase.MethodRemovedUseAnother`

### Field Summary

### Fields inherited from class org.apache.lucene.queryparser.classic.QueryParser

`jj_nt, token, token_source`

### Fields inherited from class org.apache.lucene.queryparser.classic.QueryParserBase

`AND_OPERATOR, OR_OPERATOR`

### Fields inherited from interface org.apache.lucene.queryparser.classic.QueryParserConstants

`_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 Summary

Constructors
Constructor and Description
`AnalyzingQueryParser(Version matchVersion, String field, Analyzer analyzer)` Constructs a query parser.

### Method Summary

Methods
`protected Query` `getFuzzyQuery(String field, String termStr, float minSimilarity)` Called when parser parses an input term token that has the fuzzy suffix (~) appended.
`protected Query` `getPrefixQuery(String field, String termStr)` Called when parser parses an input term token that uses prefix notation; that is, contains a single '*' wildcard character as its last character.
`protected Query` `getWildcardQuery(String field, String termStr)` Called when parser parses an input term token that contains one or more wildcard characters (like `*`), but is not a prefix term token (one that has just a single * character at the end).

### Methods inherited from class org.apache.lucene.queryparser.classic.QueryParser

`Clause, Conjunction, disable_tracing, enable_tracing, generateParseException, getNextToken, getToken, Modifiers, Query, ReInit, ReInit, Term, TopLevelQuery`

### Methods inherited from class org.apache.lucene.queryparser.classic.QueryParserBase

`addClause, analyzeMultitermTerm, escape, getAllowLeadingWildcard, getAnalyzer, getAnalyzeRangeTerms, getAutoGeneratePhraseQueries, getBooleanQuery, getBooleanQuery, getDateResolution, getDefaultOperator, getEnablePositionIncrements, getField, getFieldQuery, getFieldQuery, getFuzzyMinSim, getFuzzyPrefixLength, getLocale, getLowercaseExpandedTerms, getMultiTermRewriteMethod, getPhraseSlop, getRangeQuery, getRegexpQuery, getTimeZone, init, newBooleanClause, newBooleanQuery, newFieldQuery, newFuzzyQuery, newMatchAllDocsQuery, newMultiPhraseQuery, newPhraseQuery, newPrefixQuery, newRangeQuery, newRegexpQuery, newTermQuery, newWildcardQuery, parse, setAllowLeadingWildcard, setAnalyzeRangeTerms, setAutoGeneratePhraseQueries, setDateResolution, setDateResolution, setDefaultOperator, setEnablePositionIncrements, setFuzzyMinSim, setFuzzyPrefixLength, setLocale, setLowercaseExpandedTerms, setMultiTermRewriteMethod, setPhraseSlop, setTimeZone`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### AnalyzingQueryParser

    public AnalyzingQueryParser(Version matchVersion,
                        String field,
                        Analyzer analyzer)

Constructs a query parser.

Parameters:
  `field` - the default field for query terms.
  `analyzer` - used to find terms in the query text.

### Method Detail

#### getWildcardQuery

    protected Query getWildcardQuery(String field,
                         String termStr)
                              throws ParseException

Called when parser parses an input term token that contains one or more wildcard characters (like `*`), but is not a prefix term token (one that has just a single * character at the end).

Example: will be called for `H?user` or for `H*user` but not for `*user`.

Depending on analyzer and settings, a wildcard term may (most probably will) be lower-cased automatically. It will go through the default Analyzer.

Overrides super class, by passing terms through analyzer.

Overrides:
  `getWildcardQuery` in class `QueryParserBase`
Parameters:
  `field` - Name of the field query will use.
  `termStr` - Term token that contains one or more wild card characters (? or *), but is not simple prefix term
Returns:
  Resulting `Query` built for the term
Throws:
  `ParseException` - throw in overridden method to disallow

#### getPrefixQuery

    protected Query getPrefixQuery(String field,
                       String termStr)
                            throws ParseException

Called when parser parses an input term token that uses prefix notation; that is, contains a single '*' wildcard character as its last character. Since this is a special case of generic wildcard term, and such a query can be optimized easily, this usually results in a different query object.

Depending on analyzer and settings, a prefix term may (most probably will) be lower-cased automatically. It will go through the default Analyzer.

Overrides super class, by passing terms through analyzer.

Overrides:
  `getPrefixQuery` in class `QueryParserBase`
Parameters:
  `field` - Name of the field query will use.
  `termStr` - Term token to use for building term for the query (without trailing '*' character!)
Returns:
  Resulting `Query` built for the term
Throws:
  `ParseException` - throw in overridden method to disallow

#### getFuzzyQuery

    protected Query getFuzzyQuery(String field,
                      String termStr,
                      float minSimilarity)
                           throws ParseException

Called when parser parses an input term token that has the fuzzy suffix (~) appended.

Depending on analyzer and settings, a fuzzy term may (most probably will) be lower-cased automatically. It will go through the default Analyzer.

Overrides super class, by passing terms through analyzer.

Overrides:
  `getFuzzyQuery` in class `QueryParserBase`
Parameters:
  `field` - Name of the field query will use.
  `termStr` - Term token to use for building term for the query
Returns:
  Resulting `Query` built for the term
Throws:
  `ParseException` - throw in overridden method to disallow