Package org.apache.solr.search
Class QParser
- java.lang.Object
 - 
- org.apache.solr.search.QParser
 
 
- 
- Direct Known Subclasses:
 AbstractVectorQParserBase,CrossCollectionJoinQParser,DisMaxQParser,ExportQParserPlugin.ExportQParser,ExtendedDismaxQParser,FiltersQParser,FunctionQParser,GraphQueryParser,HashRangeQParser,LuceneQParser,MinHashQParser,RankQParserPlugin.RankQParser,SimpleMLTQParser,SpatialFilterQParser
public abstract class QParser extends Object
Note: This API is experimental and may change in non backward-compatible ways in the future 
- 
- 
Field Summary
Fields Modifier and Type Field Description static intFLAG_FILTERprotected intflagsprotected org.apache.solr.common.params.SolrParamslocalParamsprotected intlocalParamsEndprotected org.apache.solr.common.params.SolrParamsparamsprotected Stringqstrprotected org.apache.lucene.search.Queryqueryprotected intrecurseCountprotected SolrQueryRequestreqprotected StringstringIncludingLocalParamsprotected booleanvalFollowedParams 
- 
Constructor Summary
Constructors Constructor Description QParser(String qstr, org.apache.solr.common.params.SolrParams localParams, org.apache.solr.common.params.SolrParams params, SolrQueryRequest req)Constructor for the QParser 
- 
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidaddDebugInfo(org.apache.solr.common.util.NamedList<Object> debugInfo)String[]getDefaultHighlightFields()intgetFlags()org.apache.lucene.search.QuerygetHighlightQuery()org.apache.solr.common.params.SolrParamsgetLocalParams()StringgetParam(String name)check both local and global paramsorg.apache.solr.common.params.SolrParamsgetParams()static QParsergetParser(String qstr, String parserName, boolean allowLocalParams, SolrQueryRequest req)Expert: Create aQParserto parseqstrusing theparserNameparser, while allowing a toggle for whether local-params may be parsed.static QParsergetParser(String qstr, String defaultParser, SolrQueryRequest req)static QParsergetParser(String qstr, SolrQueryRequest req)Create aQParserto parseqstr, using the "lucene" (QParserPlugin.DEFAULT_QTYPE) query parser.intgetPrefixQueryMinPrefixLength()org.apache.lucene.search.QuerygetQuery()Returns the resulting query from this QParser, calling parse() only the first time and caching the Query result.SolrQueryRequestgetReq()SortSpecgetSortSpec(boolean useGlobalParams)StringgetString()booleanisFilter()abstract org.apache.lucene.search.Queryparse()Create and return theQueryobject represented byqstr.voidsetFlags(int flags)voidsetIsFilter(boolean isFilter)voidsetLocalParams(org.apache.solr.common.params.SolrParams localParams)voidsetParams(org.apache.solr.common.params.SolrParams params)voidsetReq(SolrQueryRequest req)voidsetString(String s)QParsersubQuery(String q, String defaultType)Create a new QParser for parsing an embedded sub-query 
 - 
 
- 
- 
Field Detail
- 
FLAG_FILTER
public static final int FLAG_FILTER
- See Also:
 - Constant Field Values
 - WARNING: This API is experimental and might change in incompatible ways in the next release.
 
 
- 
qstr
protected String qstr
 
- 
params
protected org.apache.solr.common.params.SolrParams params
 
- 
localParams
protected org.apache.solr.common.params.SolrParams localParams
 
- 
req
protected SolrQueryRequest req
 
- 
recurseCount
protected int recurseCount
 
- 
flags
protected int flags
- WARNING: This API is experimental and might change in incompatible ways in the next release.
 
 
- 
query
protected org.apache.lucene.search.Query query
 
- 
stringIncludingLocalParams
protected String stringIncludingLocalParams
 
- 
valFollowedParams
protected boolean valFollowedParams
 
- 
localParamsEnd
protected int localParamsEnd
 
 - 
 
- 
Constructor Detail
- 
QParser
public QParser(String qstr, org.apache.solr.common.params.SolrParams localParams, org.apache.solr.common.params.SolrParams params, SolrQueryRequest req)
Constructor for the QParser- Parameters:
 qstr- The part of the query string specific to this parserlocalParams- The set of parameters that are specific to this QParser. See https://solr.apache.org/guide/solr/latest/query-guide/local-params.htmlparams- The rest of theSolrParamsreq- The originalSolrQueryRequest.
 
 - 
 
- 
Method Detail
- 
setFlags
public void setFlags(int flags)
- WARNING: This API is experimental and might change in incompatible ways in the next release.
 
 
- 
getFlags
public int getFlags()
- WARNING: This API is experimental and might change in incompatible ways in the next release.
 
 
- 
isFilter
public boolean isFilter()
- WARNING: This API is experimental and might change in incompatible ways in the next release.
 - Query is in the context of a filter, where scores don't matter
 
 
- 
setIsFilter
public void setIsFilter(boolean isFilter)
- WARNING: This API is experimental and might change in incompatible ways in the next release.
 
 
- 
parse
public abstract org.apache.lucene.search.Query parse() throws SyntaxErrorCreate and return theQueryobject represented byqstr. Null MAY be returned to signify there was no input (e.g. no query string) to parse.- Throws:
 SyntaxError- See Also:
 getQuery()
 
- 
getLocalParams
public org.apache.solr.common.params.SolrParams getLocalParams()
 
- 
setLocalParams
public void setLocalParams(org.apache.solr.common.params.SolrParams localParams)
 
- 
getParams
public org.apache.solr.common.params.SolrParams getParams()
 
- 
setParams
public void setParams(org.apache.solr.common.params.SolrParams params)
 
- 
getReq
public SolrQueryRequest getReq()
 
- 
setReq
public void setReq(SolrQueryRequest req)
 
- 
getString
public String getString()
 
- 
setString
public void setString(String s)
 
- 
getQuery
public org.apache.lucene.search.Query getQuery() throws SyntaxErrorReturns the resulting query from this QParser, calling parse() only the first time and caching the Query result. A null return is possible!- Throws:
 SyntaxError
 
- 
subQuery
public QParser subQuery(String q, String defaultType) throws SyntaxError
Create a new QParser for parsing an embedded sub-query- Throws:
 SyntaxError
 
- 
getSortSpec
public SortSpec getSortSpec(boolean useGlobalParams) throws SyntaxError
- Parameters:
 useGlobalParams- look up sort, start, rows in global params if not in local params- Returns:
 - the sort specification
 - Throws:
 SyntaxError
 
- 
getDefaultHighlightFields
public String[] getDefaultHighlightFields()
 
- 
getHighlightQuery
public org.apache.lucene.search.Query getHighlightQuery() throws SyntaxError- Throws:
 SyntaxError
 
- 
addDebugInfo
public void addDebugInfo(org.apache.solr.common.util.NamedList<Object> debugInfo)
 
- 
getPrefixQueryMinPrefixLength
public int getPrefixQueryMinPrefixLength()
 
- 
getParser
public static QParser getParser(String qstr, SolrQueryRequest req) throws SyntaxError
Create aQParserto parseqstr, using the "lucene" (QParserPlugin.DEFAULT_QTYPE) query parser. The query parser may be overridden by local-params in the query string itself. For example if qstr={!prefix f=myfield}foothen the prefix query parser will be used.- Throws:
 SyntaxError
 
- 
getParser
public static QParser getParser(String qstr, String defaultParser, SolrQueryRequest req) throws SyntaxError
Create aQParserto parseqstrusing thedefaultParser. Note that local-params is only parsed when the defaultParser is "lucene" or "func".- Throws:
 SyntaxError
 
- 
getParser
public static QParser getParser(String qstr, String parserName, boolean allowLocalParams, SolrQueryRequest req) throws SyntaxError
Expert: Create aQParserto parseqstrusing theparserNameparser, while allowing a toggle for whether local-params may be parsed. The query parser may be overridden by local parameters in the query string itself (assumingallowLocalParams. For example if parserName=dismaxand qstr=foo, then the dismax query parser will be used to parse and construct the query object. However if qstr={!prefix f=myfield}foothen the prefix query parser will be used.- Parameters:
 allowLocalParams- Whether this query parser should parse local-params syntax. Note that the "lucene" query parser natively parses local-params regardless.- Throws:
 SyntaxError- NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.
 
 
 - 
 
 -