Package org.apache.solr.search
Class FunctionQParser
- java.lang.Object
-
- org.apache.solr.search.QParser
-
- org.apache.solr.search.FunctionQParser
-
public class FunctionQParser extends QParser
Does "function query" parsing of function-call like strings, producing aValueSource. As this implementsQParser, we produce aQuery, but more oftenparseAsValueSource()is called instead.- See Also:
ValueSourceParser
-
-
Field Summary
Fields Modifier and Type Field Description static intFLAG_CONSUME_DELIMITERstatic intFLAG_DEFAULTstatic intFLAG_IS_AGGstatic intFLAG_PARSE_VECTOR_BYTE_ENCODINGstatic intFLAG_USE_FIELDNAME_SOURCEStrParsersp-
Fields inherited from class org.apache.solr.search.QParser
FLAG_FILTER, flags, localParams, localParamsEnd, params, qstr, query, recurseCount, req, stringIncludingLocalParams, valFollowedParams
-
-
Constructor Summary
Constructors Constructor Description FunctionQParser(String qstr, org.apache.solr.common.params.SolrParams localParams, org.apache.solr.common.params.SolrParams params, SolrQueryRequest req)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description booleanargWasQuoted()protected booleanconsumeArgumentDelimiter()Consume an argument delimiter (a comma) from the token stream.booleangetParseMultipleSources()Deprecated.this is only needed for an unusual use-case and seems hard to supportbooleangetParseToEnd()throw exception if there is extra stuff at the end of the parsed valuesource(s).booleanhasMoreArguments()Are there more arguments in the argument list being parsed?org.apache.lucene.search.Queryparse()Create and return theQueryobject represented byqstr.AggValueSourceparseAgg(int flags)StringparseArg()org.apache.lucene.queries.function.ValueSourceparseAsValueSource()Parses as a ValueSource, not a Query.static org.apache.lucene.queries.function.ValueSourceparseAsValueSource(String string, SolrQueryRequest request)Parses the string to aValueSource.org.apache.lucene.queries.function.ValueSourceparseConstVector(int flags)doubleparseDouble()Parse a DoubleFloatparseFloat()Parse a float.StringparseId()intparseInt()Parse an integerorg.apache.lucene.search.QueryparseNestedQuery()org.apache.lucene.queries.function.ValueSourceparseValueSource()Parse an individual ValueSource.protected org.apache.lucene.queries.function.ValueSourceparseValueSource(boolean doConsumeDelimiter)Parse an individual value source.protected org.apache.lucene.queries.function.ValueSourceparseValueSource(int flags)List<org.apache.lucene.queries.function.ValueSource>parseValueSourceList()Parse a list of ValueSource.List<org.apache.lucene.queries.function.ValueSource>parseValueSourceList(int flags)Parse a list of ValueSource.List<Number>parseVector(org.apache.lucene.index.VectorEncoding encoding)voidsetParseMultipleSources(boolean parseMultipleSources)Deprecated.voidsetParseToEnd(boolean parseToEnd)voidsetString(String s)-
Methods inherited from class org.apache.solr.search.QParser
addDebugInfo, getDefaultHighlightFields, getFlags, getHighlightQuery, getLocalParams, getParam, getParams, getParser, getParser, getParser, getPrefixQueryMinPrefixLength, getQuery, getReq, getSortSpec, getString, isFilter, setFlags, setIsFilter, setLocalParams, setParams, setReq, subQuery
-
-
-
-
Field Detail
-
FLAG_CONSUME_DELIMITER
public static final int FLAG_CONSUME_DELIMITER
- See Also:
- Constant Field Values
-
FLAG_IS_AGG
public static final int FLAG_IS_AGG
- See Also:
- Constant Field Values
-
FLAG_USE_FIELDNAME_SOURCE
public static final int FLAG_USE_FIELDNAME_SOURCE
- See Also:
- Constant Field Values
-
FLAG_PARSE_VECTOR_BYTE_ENCODING
public static final int FLAG_PARSE_VECTOR_BYTE_ENCODING
- See Also:
- Constant Field Values
-
FLAG_DEFAULT
public static final int FLAG_DEFAULT
- See Also:
- Constant Field Values
-
sp
public StrParser sp
- NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.
-
-
Constructor Detail
-
FunctionQParser
public FunctionQParser(String qstr, org.apache.solr.common.params.SolrParams localParams, org.apache.solr.common.params.SolrParams params, SolrQueryRequest req)
-
-
Method Detail
-
parseAsValueSource
public static org.apache.lucene.queries.function.ValueSource parseAsValueSource(String string, SolrQueryRequest request) throws SyntaxError
Parses the string to aValueSource. Typically, this is not used, however.- Throws:
SyntaxError- See Also:
QParser.parseAsValueSource()
-
setParseMultipleSources
@Deprecated public void setParseMultipleSources(boolean parseMultipleSources)
Deprecated.
-
getParseMultipleSources
@Deprecated public boolean getParseMultipleSources()
Deprecated.this is only needed for an unusual use-case and seems hard to supportParse multiple comma separated value sources encapsulated into aVectorValueSourcewhenQParser.getQuery()orparseAsValueSource()is called.
-
setParseToEnd
public void setParseToEnd(boolean parseToEnd)
-
getParseToEnd
public boolean getParseToEnd()
throw exception if there is extra stuff at the end of the parsed valuesource(s).
-
parse
public org.apache.lucene.search.Query parse() throws SyntaxErrorDescription copied from class:QParserCreate and return theQueryobject represented byqstr. Null MAY be returned to signify there was no input (e.g. no query string) to parse.- Specified by:
parsein classQParser- Throws:
SyntaxError- See Also:
QParser.getQuery()
-
parseAsValueSource
public org.apache.lucene.queries.function.ValueSource parseAsValueSource() throws SyntaxErrorParses as a ValueSource, not a Query. NOT intended to be called byValueSourceParser.parse(FunctionQParser); it's intended for general code that has aQParserbut actually wants to parse a ValueSource.- Overrides:
parseAsValueSourcein classQParser- Returns:
- A
VectorValueSourcefor multiple VS, otherwise just the single VS. - Throws:
SyntaxError
-
hasMoreArguments
public boolean hasMoreArguments() throws SyntaxErrorAre there more arguments in the argument list being parsed?- Returns:
- whether more args exist
- Throws:
SyntaxError
-
parseId
public String parseId() throws SyntaxError
- Throws:
SyntaxError
-
parseFloat
public Float parseFloat() throws SyntaxError
Parse a float.- Returns:
- Float
- Throws:
SyntaxError
-
parseDouble
public double parseDouble() throws SyntaxErrorParse a Double- Returns:
- double
- Throws:
SyntaxError
-
parseInt
public int parseInt() throws SyntaxErrorParse an integer- Returns:
- An int
- Throws:
SyntaxError
-
argWasQuoted
public boolean argWasQuoted()
-
parseArg
public String parseArg() throws SyntaxError
- Throws:
SyntaxError
-
parseVector
public List<Number> parseVector(org.apache.lucene.index.VectorEncoding encoding) throws SyntaxError
- Throws:
SyntaxError
-
parseValueSourceList
public List<org.apache.lucene.queries.function.ValueSource> parseValueSourceList() throws SyntaxError
Parse a list of ValueSource. Must be the final set of arguments to a ValueSource.- Returns:
- List<ValueSource>
- Throws:
SyntaxError
-
parseValueSourceList
public List<org.apache.lucene.queries.function.ValueSource> parseValueSourceList(int flags) throws SyntaxError
Parse a list of ValueSource. Must be the final set of arguments to a ValueSource.- Parameters:
flags- - customize parsing behavior- Returns:
- List<ValueSource>
- Throws:
SyntaxError
-
parseValueSource
public org.apache.lucene.queries.function.ValueSource parseValueSource() throws SyntaxErrorParse an individual ValueSource.- Throws:
SyntaxError
-
parseNestedQuery
public org.apache.lucene.search.Query parseNestedQuery() throws SyntaxError- Throws:
SyntaxError
-
parseValueSource
protected org.apache.lucene.queries.function.ValueSource parseValueSource(boolean doConsumeDelimiter) throws SyntaxErrorParse an individual value source.- Parameters:
doConsumeDelimiter- whether to consume a delimiter following the ValueSource- Throws:
SyntaxError
-
parseValueSource
protected org.apache.lucene.queries.function.ValueSource parseValueSource(int flags) throws SyntaxError- Throws:
SyntaxError
-
parseConstVector
public org.apache.lucene.queries.function.ValueSource parseConstVector(int flags) throws SyntaxError- Throws:
SyntaxError
-
parseAgg
public AggValueSource parseAgg(int flags) throws SyntaxError
- Throws:
SyntaxError- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
consumeArgumentDelimiter
protected boolean consumeArgumentDelimiter() throws SyntaxErrorConsume an argument delimiter (a comma) from the token stream. Only consumes if more arguments should exist (no ending parens or end of string).- Returns:
- whether a delimiter was consumed
- Throws:
SyntaxError
-
-