Package org.apache.solr.search
Class ExtendedDismaxQParser.ExtendedSolrQueryParser
- java.lang.Object
-
- org.apache.lucene.util.QueryBuilder
-
- org.apache.solr.parser.SolrQueryParserBase
-
- org.apache.solr.parser.QueryParser
-
- org.apache.solr.search.SolrQueryParser
-
- org.apache.solr.search.ExtendedDismaxQParser.ExtendedSolrQueryParser
-
- All Implemented Interfaces:
QueryParserConstants
- Enclosing class:
- ExtendedDismaxQParser
public static class ExtendedDismaxQParser.ExtendedSolrQueryParser extends SolrQueryParser
A subclass of SolrQueryParser that supports aliasing fields for constructing DisjunctionMaxQueries.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
ExtendedDismaxQParser.ExtendedSolrQueryParser.Alias
A simple container for storing alias info-
Nested classes/interfaces inherited from class org.apache.solr.parser.QueryParser
QueryParser.Operator
-
Nested classes/interfaces inherited from class org.apache.solr.parser.SolrQueryParserBase
SolrQueryParserBase.MagicFieldName, SolrQueryParserBase.RawQuery, SolrQueryParserBase.SynonymQueryStyle
-
-
Field Summary
Fields Modifier and Type Field Description protected Map<String,ExtendedDismaxQParser.ExtendedSolrQueryParser.Alias>
aliases
Where we store a map from field name we expect to see in our query string, to Alias object containing the fields to use in our DisjunctionMaxQuery and the tiebreaker to use.-
Fields inherited from class org.apache.solr.parser.QueryParser
DEFAULT_SPLIT_ON_WHITESPACE, jj_nt, token, token_source
-
Fields inherited from class org.apache.solr.parser.SolrQueryParserBase
AND_OPERATOR, explicitField, operator, OR_OPERATOR, parser, REVERSE_WILDCARD_LOWER_BOUND, schema, synonymQueryStyle, TERMS_QUERY_THRESHOLD
-
Fields inherited from class org.apache.lucene.util.QueryBuilder
analyzer, autoGenerateMultiTermSynonymsPhraseQuery, enableGraphQueries, enablePositionIncrements
-
Fields inherited from interface org.apache.solr.parser.QueryParserConstants
_ESCAPED_CHAR, _NUM_CHAR, _QUOTED_CHAR, _SQUOTED_CHAR, _TERM_CHAR, _TERM_START_CHAR, _WHITESPACE, AND, BAREOPER, Boost, CARAT, COLON, COMMENT, DEFAULT, EOF, FILTER, FUZZY_SLOP, LPARAMS, 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 Description ExtendedSolrQueryParser(QParser parser, String defaultField)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addAlias(String field, float tiebreaker, Map<String,Float> fieldBoosts)
Add an alias to this query parser.protected void
addMultiTermClause(List<org.apache.lucene.search.BooleanClause> clauses, org.apache.lucene.search.Query q)
Called from QueryParser's MultiTerm rule.protected ExtendedDismaxQParser.ExtendedSolrQueryParser.Alias
getAlias(String field)
Returns the aliases found for a field.protected org.apache.lucene.search.Query
getAliasedMultiTermQuery()
Delegates to the super class unless the field has been specified as an alias -- in which case we recurse on each of the aliased fields, and the results are composed into a DisjunctionMaxQuery.protected org.apache.lucene.search.Query
getAliasedQuery()
Delegates to the super class unless the field has been specified as an alias -- in which case we recurse on each of the aliased fields, and the results are composed into a DisjunctionMaxQuery.protected org.apache.lucene.search.Query
getBooleanQuery(List<org.apache.lucene.search.BooleanClause> clauses)
Factory method for generating query, given a set of clauses.protected org.apache.lucene.search.Query
getFieldQuery(String field, String val, boolean quoted, boolean raw)
protected org.apache.lucene.search.Query
getFieldQuery(String field, String val, int slop)
Base implementation delegates toSolrQueryParserBase.getFieldQuery(String,String,boolean,boolean)
.protected org.apache.lucene.search.Query
getFieldQuery(String field, List<String> queryTerms, boolean raw)
protected org.apache.lucene.search.Query
getFuzzyQuery(String field, String val, float minSimilarity)
protected List<org.apache.lucene.search.Query>
getMultiTermQueries(ExtendedDismaxQParser.ExtendedSolrQueryParser.Alias a)
protected org.apache.lucene.search.Query
getPrefixQuery(String field, String val)
protected List<org.apache.lucene.search.Query>
getQueries(ExtendedDismaxQParser.ExtendedSolrQueryParser.Alias a)
protected org.apache.lucene.search.Query
getRangeQuery(String field, String a, String b, boolean startInclusive, boolean endInclusive)
protected org.apache.lucene.search.Query
getWildcardQuery(String field, String val)
protected org.apache.lucene.search.Query
newFieldQuery(org.apache.lucene.analysis.Analyzer analyzer, String field, String queryText, boolean quoted, boolean fieldAutoGenPhraseQueries, boolean enableGraphQueries, SolrQueryParserBase.SynonymQueryStyle synonymQueryStyle)
void
setRemoveStopFilter(boolean remove)
-
Methods inherited from class org.apache.solr.parser.QueryParser
Clause, Conjunction, disable_tracing, enable_tracing, generateParseException, getNextToken, getSplitOnWhitespace, getToken, Modifiers, MultiTerm, Query, ReInit, ReInit, setSplitOnWhitespace, Term, TopLevelQuery
-
Methods inherited from class org.apache.solr.parser.SolrQueryParserBase
addClause, analyzeIfMultitermTermText, escape, getAllowLeadingWildcard, getAutoGeneratePhraseQueries, getDefaultField, getDefaultOperator, getExplicitField, getField, getFieldQuery, getFuzzyMinSim, getFuzzyPrefixLength, getLocalParams, getMultiTermRewriteMethod, getPhraseSlop, getRangeQueryImpl, getRegexpQuery, getReversedWildcardFilterFactory, getSynonymQueryStyle, init, isAllowSubQueryParsing, isRangeShouldBeProtectedFromReverse, newBooleanClause, newFuzzyQuery, newMatchAllDocsQuery, newPrefixQuery, newRegexpQuery, newSynonymQuery, newWildcardQuery, parse, setAllowLeadingWildcard, setAllowSubQueryParsing, setAutoGeneratePhraseQueries, setDefaultOperator, setFuzzyMinSim, setFuzzyPrefixLength, setMultiTermRewriteMethod, setPhraseSlop, setSynonymQueryStyle
-
Methods inherited from class org.apache.lucene.util.QueryBuilder
add, analyzeBoolean, analyzeGraphBoolean, analyzeGraphPhrase, analyzeMultiBoolean, analyzeMultiPhrase, analyzePhrase, analyzeTerm, createBooleanQuery, createBooleanQuery, createFieldQuery, createFieldQuery, createMinShouldMatchQuery, createPhraseQuery, createPhraseQuery, createSpanQuery, getAnalyzer, getAutoGenerateMultiTermSynonymsPhraseQuery, getEnableGraphQueries, getEnablePositionIncrements, newBooleanQuery, newGraphSynonymQuery, newMultiPhraseQueryBuilder, newTermQuery, setAnalyzer, setAutoGenerateMultiTermSynonymsPhraseQuery, setEnableGraphQueries, setEnablePositionIncrements
-
-
-
-
Field Detail
-
aliases
protected Map<String,ExtendedDismaxQParser.ExtendedSolrQueryParser.Alias> aliases
Where we store a map from field name we expect to see in our query string, to Alias object containing the fields to use in our DisjunctionMaxQuery and the tiebreaker to use.
-
-
Method Detail
-
setRemoveStopFilter
public void setRemoveStopFilter(boolean remove)
-
getBooleanQuery
protected org.apache.lucene.search.Query getBooleanQuery(List<org.apache.lucene.search.BooleanClause> clauses) throws SyntaxError
Description copied from class:SolrQueryParserBase
Factory method for generating query, given a set of clauses. By default creates a boolean query composed of clauses passed in. Can be overridden by extending classes, to modify query being returned.- Overrides:
getBooleanQuery
in classSolrQueryParserBase
- Parameters:
clauses
- List that containsBooleanClause
instances to join.- Returns:
- Resulting
Query
object. - Throws:
SyntaxError
-
addAlias
public void addAlias(String field, float tiebreaker, Map<String,Float> fieldBoosts)
Add an alias to this query parser.- Parameters:
field
- the field name that should trigger alias mappingfieldBoosts
- the mapping from fieldname to boost value that should be used to build up the clauses of the DisjunctionMaxQuery.tiebreaker
- to the tiebreaker to be used in the DisjunctionMaxQuery- See Also:
SolrPluginUtils.parseFieldBoosts(java.lang.String)
-
getAlias
protected ExtendedDismaxQParser.ExtendedSolrQueryParser.Alias getAlias(String field)
Returns the aliases found for a field. Returns null if there are no aliases for the field- Returns:
- Alias
-
getFieldQuery
protected org.apache.lucene.search.Query getFieldQuery(String field, String val, boolean quoted, boolean raw) throws SyntaxError
- Overrides:
getFieldQuery
in classSolrQueryParserBase
- Throws:
SyntaxError
-
getFieldQuery
protected org.apache.lucene.search.Query getFieldQuery(String field, String val, int slop) throws SyntaxError
Description copied from class:SolrQueryParserBase
Base implementation delegates toSolrQueryParserBase.getFieldQuery(String,String,boolean,boolean)
. This method may be overridden, for example, to return a SpanNearQuery instead of a PhraseQuery.- Overrides:
getFieldQuery
in classSolrQueryParserBase
- Throws:
SyntaxError
-
getFieldQuery
protected org.apache.lucene.search.Query getFieldQuery(String field, List<String> queryTerms, boolean raw) throws SyntaxError
- Overrides:
getFieldQuery
in classSolrQueryParserBase
- Throws:
SyntaxError
-
getPrefixQuery
protected org.apache.lucene.search.Query getPrefixQuery(String field, String val) throws SyntaxError
- Overrides:
getPrefixQuery
in classSolrQueryParserBase
- Throws:
SyntaxError
-
newFieldQuery
protected org.apache.lucene.search.Query newFieldQuery(org.apache.lucene.analysis.Analyzer analyzer, String field, String queryText, boolean quoted, boolean fieldAutoGenPhraseQueries, boolean enableGraphQueries, SolrQueryParserBase.SynonymQueryStyle synonymQueryStyle) throws SyntaxError
- Overrides:
newFieldQuery
in classQueryParser
- Throws:
SyntaxError
-
getRangeQuery
protected org.apache.lucene.search.Query getRangeQuery(String field, String a, String b, boolean startInclusive, boolean endInclusive) throws SyntaxError
- Overrides:
getRangeQuery
in classSolrQueryParserBase
- Throws:
SyntaxError
-
getWildcardQuery
protected org.apache.lucene.search.Query getWildcardQuery(String field, String val) throws SyntaxError
- Overrides:
getWildcardQuery
in classSolrQueryParserBase
- Throws:
SyntaxError
-
getFuzzyQuery
protected org.apache.lucene.search.Query getFuzzyQuery(String field, String val, float minSimilarity) throws SyntaxError
- Overrides:
getFuzzyQuery
in classSolrQueryParserBase
- Throws:
SyntaxError
-
getAliasedQuery
protected org.apache.lucene.search.Query getAliasedQuery() throws SyntaxError
Delegates to the super class unless the field has been specified as an alias -- in which case we recurse on each of the aliased fields, and the results are composed into a DisjunctionMaxQuery. (so yes: aliases which point at other aliases should work)- Throws:
SyntaxError
-
getAliasedMultiTermQuery
protected org.apache.lucene.search.Query getAliasedMultiTermQuery() throws SyntaxError
Delegates to the super class unless the field has been specified as an alias -- in which case we recurse on each of the aliased fields, and the results are composed into a DisjunctionMaxQuery. (so yes: aliases which point at other aliases should work)- Throws:
SyntaxError
-
addMultiTermClause
protected void addMultiTermClause(List<org.apache.lucene.search.BooleanClause> clauses, org.apache.lucene.search.Query q)
Description copied from class:SolrQueryParserBase
Called from QueryParser's MultiTerm rule. Assumption: no conjunction or modifiers (conj == CONJ_NONE and mods == MOD_NONE)- Overrides:
addMultiTermClause
in classSolrQueryParserBase
-
getQueries
protected List<org.apache.lucene.search.Query> getQueries(ExtendedDismaxQParser.ExtendedSolrQueryParser.Alias a) throws SyntaxError
- Throws:
SyntaxError
-
getMultiTermQueries
protected List<org.apache.lucene.search.Query> getMultiTermQueries(ExtendedDismaxQParser.ExtendedSolrQueryParser.Alias a) throws SyntaxError
- Throws:
SyntaxError
-
-