org.apache.solr.search
Class SolrQueryParser

java.lang.Object
  extended by org.apache.lucene.queryparser.classic.QueryParserBase
      extended by org.apache.lucene.queryparser.classic.QueryParser
          extended by org.apache.solr.search.SolrQueryParser
All Implemented Interfaces:
QueryParserConstants
Direct Known Subclasses:
SolrPluginUtils.DisjunctionMaxQueryParser

public class SolrQueryParser
extends QueryParser

A variation on the Lucene QueryParser which knows about the field types and query time analyzers configured in Solr's schema.xml.

This class also deviates from the Lucene QueryParser by using ConstantScore versions of RangeQuery and PrefixQuery to prevent TooManyClauses exceptions.

If the magic field name "_val_" is used in a term or phrase query, the value is parsed as a function.


Nested Class Summary
static class SolrQueryParser.MagicFieldName
          Identifies the list of all known "magic fields" that trigger special parsing behavior
 
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
protected  String defaultField
           
protected  QParser parser
           
protected  IndexSchema schema
           
 
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
SolrQueryParser(QParser parser, String defaultField)
           
SolrQueryParser(QParser parser, String defaultField, Analyzer analyzer)
           
 
Method Summary
protected  String analyzeIfMultitermTermText(String field, String part, FieldType fieldType)
           
protected  Query getFieldQuery(String field, String queryText, boolean quoted)
           
protected  Query getPrefixQuery(String field, String termStr)
           
protected  Query getRangeQuery(String field, String part1, String part2, boolean startInclusive, boolean endInclusive)
           
protected  Query getRegexpQuery(String field, String termStr)
           
protected  ReversedWildcardFilterFactory getReversedWildcardFilterFactory(FieldType fieldType)
           
protected  Query getWildcardQuery(String field, String termStr)
           
 
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, getFuzzyMinSim, getFuzzyPrefixLength, getFuzzyQuery, getLocale, getLowercaseExpandedTerms, getMultiTermRewriteMethod, getPhraseSlop, 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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

schema

protected final IndexSchema schema

parser

protected final QParser parser

defaultField

protected final String defaultField
Constructor Detail

SolrQueryParser

public SolrQueryParser(QParser parser,
                       String defaultField)

SolrQueryParser

public SolrQueryParser(QParser parser,
                       String defaultField,
                       Analyzer analyzer)
Method Detail

getReversedWildcardFilterFactory

protected ReversedWildcardFilterFactory getReversedWildcardFilterFactory(FieldType fieldType)

analyzeIfMultitermTermText

protected String analyzeIfMultitermTermText(String field,
                                            String part,
                                            FieldType fieldType)

getFieldQuery

protected Query getFieldQuery(String field,
                              String queryText,
                              boolean quoted)
                       throws ParseException
Overrides:
getFieldQuery in class QueryParserBase
Throws:
ParseException

getRangeQuery

protected Query getRangeQuery(String field,
                              String part1,
                              String part2,
                              boolean startInclusive,
                              boolean endInclusive)
                       throws ParseException
Overrides:
getRangeQuery in class QueryParserBase
Throws:
ParseException

getPrefixQuery

protected Query getPrefixQuery(String field,
                               String termStr)
                        throws ParseException
Overrides:
getPrefixQuery in class QueryParserBase
Throws:
ParseException

getWildcardQuery

protected Query getWildcardQuery(String field,
                                 String termStr)
                          throws ParseException
Overrides:
getWildcardQuery in class QueryParserBase
Throws:
ParseException

getRegexpQuery

protected Query getRegexpQuery(String field,
                               String termStr)
                        throws ParseException
Overrides:
getRegexpQuery in class QueryParserBase
Throws:
ParseException


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