org.apache.solr.util

## Class SolrPluginUtils.DisjunctionMaxQueryParser

- 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.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

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected static class` | `SolrPluginUtils.DisjunctionMaxQueryParser.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`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `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.parser.QueryParser

      `jj_nt, token, token_source`

    - ### Fields inherited from class org.apache.solr.parser.SolrQueryParserBase

      `AND_OPERATOR, explicitField, OR_OPERATOR, parser, schema`

    - ### 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 and Description
    `DisjunctionMaxQueryParser(QParser qp, String defaultField)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addAlias(String field, float tiebreaker, Map<String,Float> fieldBoosts)` Add an alias to this query parser.
    `protected Query` | `getFieldQuery(String field, String queryText, boolean quoted)` 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.parser.QueryParser

      `Clause, Conjunction, disable_tracing, enable_tracing, generateParseException, getNextToken, getToken, Modifiers, Query, ReInit, ReInit, Term, TopLevelQuery`

    - ### Methods inherited from class org.apache.solr.parser.SolrQueryParserBase

      `addClause, analyzeIfMultitermTermText, escape, getAllowLeadingWildcard, getAutoGeneratePhraseQueries, getBooleanQuery, getDefaultField, getDefaultOperator, getExplicitField, getField, getFieldQuery, getFuzzyMinSim, getFuzzyPrefixLength, getFuzzyQuery, getLocalParams, getMultiTermRewriteMethod, getPhraseSlop, getPrefixQuery, getRangeQuery, getRegexpQuery, getReversedWildcardFilterFactory, getWildcardQuery, init, newBooleanClause, newFieldQuery, newFuzzyQuery, newMatchAllDocsQuery, newPrefixQuery, newRegexpQuery, newWildcardQuery, parse, setAllowLeadingWildcard, setAutoGeneratePhraseQueries, setDefaultOperator, setFuzzyMinSim, setFuzzyPrefixLength, setMultiTermRewriteMethod, setPhraseSlop`

    - ### Methods inherited from class org.apache.lucene.util.QueryBuilder

      `createBooleanQuery, createBooleanQuery, createFieldQuery, createMinShouldMatchQuery, createPhraseQuery, createPhraseQuery, getAnalyzer, getEnablePositionIncrements, newBooleanQuery, newMultiPhraseQueryBuilder, newSynonymQuery, newTermQuery, setAnalyzer, setEnablePositionIncrements`

    - ### 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

    - #### DisjunctionMaxQueryParser

          public DisjunctionMaxQueryParser(QParser qp,
                                           String defaultField)

  - ### 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,
                                        boolean quoted)
                                 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)
      Overrides:
        `getFieldQuery` in class `SolrQueryParserBase`
      Throws:
        `SyntaxError`

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