org.apache.solr.util
Class SolrPluginUtils.DisjunctionMaxQueryParser

java.lang.Object
  extended by org.apache.lucene.queryParser.QueryParser
      extended by org.apache.solr.search.SolrQueryParser
          extended by org.apache.solr.util.SolrPluginUtils.DisjunctionMaxQueryParser
All Implemented Interfaces:
QueryParserConstants
Enclosing class:
SolrPluginUtils

public static class SolrPluginUtils.DisjunctionMaxQueryParser
extends SolrQueryParser

A subclass of SolrQueryParser that supports aliasing fields for constructing DisjunctionMaxQueries.


Nested Class Summary
protected static class SolrPluginUtils.DisjunctionMaxQueryParser.Alias
          A simple container for storing alias info
 
Nested classes/interfaces inherited from class org.apache.lucene.queryParser.QueryParser
QueryParser.Operator
 
Field Summary
protected  Map<String,SolrPluginUtils.DisjunctionMaxQueryParser.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.search.SolrQueryParser
defaultField, leadingWildcards, parser, schema
 
Fields inherited from class org.apache.lucene.queryParser.QueryParser
AND_OPERATOR, jj_nt, OR_OPERATOR, token, token_source
 
Fields inherited from interface org.apache.lucene.queryParser.QueryParserConstants
_ESCAPED_CHAR, _NUM_CHAR, _QUOTED_CHAR, _TERM_CHAR, _TERM_START_CHAR, _WHITESPACE, AND, Boost, CARAT, COLON, DEFAULT, EOF, FUZZY_SLOP, LPAREN, MINUS, NOT, NUMBER, OR, PLUS, PREFIXTERM, QUOTED, RangeEx, RANGEEX_END, RANGEEX_GOOP, RANGEEX_QUOTED, RANGEEX_START, RANGEEX_TO, RangeIn, RANGEIN_END, RANGEIN_GOOP, RANGEIN_QUOTED, RANGEIN_START, RANGEIN_TO, RPAREN, STAR, TERM, tokenImage, WILDTERM
 
Constructor Summary
SolrPluginUtils.DisjunctionMaxQueryParser(IndexSchema s)
           
SolrPluginUtils.DisjunctionMaxQueryParser(IndexSchema s, String defaultField)
           
SolrPluginUtils.DisjunctionMaxQueryParser(QParser qp, String defaultField)
           
 
Method Summary
 void addAlias(String field, float tiebreaker, Map<String,Float> fieldBoosts)
          Add an alias to this query parser.
protected  Query getFieldQuery(String field, String queryText)
          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.
 
Methods inherited from class org.apache.solr.search.SolrQueryParser
checkAllowLeadingWildcards, getPrefixQuery, getRangeQuery, getWildcardQuery
 
Methods inherited from class org.apache.lucene.queryParser.QueryParser
addClause, addClause, Clause, Conjunction, disable_tracing, enable_tracing, escape, generateParseException, getAllowLeadingWildcard, getAnalyzer, getBooleanQuery, getBooleanQuery, getBooleanQuery, getBooleanQuery, getDateResolution, getDefaultOperator, getEnablePositionIncrements, getField, getFieldQuery, getFuzzyMinSim, getFuzzyPrefixLength, getFuzzyQuery, getLocale, getLowercaseExpandedTerms, getMultiTermRewriteMethod, getNextToken, getPhraseSlop, getRangeCollator, getToken, getUseOldRangeQuery, main, Modifiers, newBooleanClause, newBooleanQuery, newFuzzyQuery, newMatchAllDocsQuery, newMultiPhraseQuery, newPhraseQuery, newPrefixQuery, newRangeQuery, newTermQuery, newWildcardQuery, parse, Query, ReInit, ReInit, setAllowLeadingWildcard, setDateResolution, setDateResolution, setDefaultOperator, setEnablePositionIncrements, setFuzzyMinSim, setFuzzyPrefixLength, setLocale, setLowercaseExpandedTerms, setMultiTermRewriteMethod, setPhraseSlop, setRangeCollator, setUseOldRangeQuery, Term, TopLevelQuery
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

aliases

protected Map<String,SolrPluginUtils.DisjunctionMaxQueryParser.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.

Constructor Detail

SolrPluginUtils.DisjunctionMaxQueryParser

public SolrPluginUtils.DisjunctionMaxQueryParser(QParser qp,
                                                 String defaultField)

SolrPluginUtils.DisjunctionMaxQueryParser

public SolrPluginUtils.DisjunctionMaxQueryParser(IndexSchema s,
                                                 String defaultField)

SolrPluginUtils.DisjunctionMaxQueryParser

public SolrPluginUtils.DisjunctionMaxQueryParser(IndexSchema s)
Method Detail

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 mapping
fieldBoosts - 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)

getFieldQuery

protected Query getFieldQuery(String field,
                              String queryText)
                       throws ParseException
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)

Overrides:
getFieldQuery in class SolrQueryParser
Throws:
ParseException


Copyright © 2009 Apache Software Foundation. All Rights Reserved.