Class MatchQueryBuilder

All Implemented Interfaces:
NamedWriteable, Writeable, org.elasticsearch.common.xcontent.ToXContent, org.elasticsearch.common.xcontent.ToXContentObject, QueryBuilder, Rewriteable<QueryBuilder>

public class MatchQueryBuilder
extends AbstractQueryBuilder<MatchQueryBuilder>
Match query is a query that analyzes the text and constructs a query as the result of the analysis.
  • Field Details


      public static final org.elasticsearch.common.ParseField ZERO_TERMS_QUERY_FIELD

      @Deprecated public static final org.elasticsearch.common.ParseField CUTOFF_FREQUENCY_FIELD
      Since max_optimization optimization landed in 7.0, normal MatchQuery will achieve the same result without any configuration.

      public static final org.elasticsearch.common.ParseField LENIENT_FIELD

      public static final org.elasticsearch.common.ParseField FUZZY_TRANSPOSITIONS_FIELD

      public static final org.elasticsearch.common.ParseField FUZZY_REWRITE_FIELD

      public static final org.elasticsearch.common.ParseField MINIMUM_SHOULD_MATCH_FIELD

      public static final org.elasticsearch.common.ParseField OPERATOR_FIELD

      public static final org.elasticsearch.common.ParseField MAX_EXPANSIONS_FIELD

      public static final org.elasticsearch.common.ParseField PREFIX_LENGTH_FIELD

      public static final org.elasticsearch.common.ParseField ANALYZER_FIELD

      public static final org.elasticsearch.common.ParseField QUERY_FIELD

      public static final org.elasticsearch.common.ParseField GENERATE_SYNONYMS_PHRASE_QUERY
    • NAME

      public static final java.lang.String NAME
      The name for the match query
      See Also:
      Constant Field Values

      public static final Operator DEFAULT_OPERATOR
      The default mode terms are combined in a match query
  • Constructor Details

    • MatchQueryBuilder

      public MatchQueryBuilder​(java.lang.String fieldName, java.lang.Object value)
      Constructs a new match query.
    • MatchQueryBuilder

      public MatchQueryBuilder​(StreamInput in) throws
      Read from a stream.
  • Method Details

    • doWriteTo

      protected void doWriteTo​(StreamOutput out) throws
      Specified by:
      doWriteTo in class AbstractQueryBuilder<MatchQueryBuilder>
    • fieldName

      public java.lang.String fieldName()
      Returns the field name used in this query.
    • value

      public java.lang.Object value()
      Returns the value used in this query.
    • operator

      public MatchQueryBuilder operator​(Operator operator)
      Sets the operator to use when using a boolean query. Defaults to OR.
    • operator

      public Operator operator()
      Returns the operator to use in a boolean query.
    • analyzer

      public MatchQueryBuilder analyzer​(java.lang.String analyzer)
      Explicitly set the analyzer to use. Defaults to use explicit mapping config for the field, or, if not set, the default search analyzer.
    • analyzer

      public java.lang.String analyzer()
      Get the analyzer to use, if previously set, otherwise null
    • fuzziness

      public MatchQueryBuilder fuzziness​(java.lang.Object fuzziness)
      Sets the fuzziness used when evaluated to a fuzzy query type. Defaults to "AUTO".
    • fuzziness

      public Fuzziness fuzziness()
      Gets the fuzziness used when evaluated to a fuzzy query type.
    • prefixLength

      public MatchQueryBuilder prefixLength​(int prefixLength)
      Sets the length of a length of common (non-fuzzy) prefix for fuzzy match queries
      prefixLength - non-negative length of prefix
      java.lang.IllegalArgumentException - in case the prefix is negative
    • prefixLength

      public int prefixLength()
      Gets the length of a length of common (non-fuzzy) prefix for fuzzy match queries
    • maxExpansions

      public MatchQueryBuilder maxExpansions​(int maxExpansions)
      When using fuzzy or prefix type query, the number of term expansions to use.
    • maxExpansions

      public int maxExpansions()
      Get the (optional) number of term expansions when using fuzzy or prefix type query.
    • cutoffFrequency

      @Deprecated public MatchQueryBuilder cutoffFrequency​(float cutoff)
      see CUTOFF_FREQUENCY_FIELD for more details
      Set a cutoff value in [0..1] (or absolute number >=1) representing the maximum threshold of a terms document frequency to be considered a low frequency term.
    • cutoffFrequency

      public java.lang.Float cutoffFrequency()
      Gets the optional cutoff value, can be null if not set previously
    • minimumShouldMatch

      public MatchQueryBuilder minimumShouldMatch​(java.lang.String minimumShouldMatch)
      Sets optional minimumShouldMatch value to apply to the query
    • minimumShouldMatch

      public java.lang.String minimumShouldMatch()
      Gets the minimumShouldMatch value
    • fuzzyRewrite

      public MatchQueryBuilder fuzzyRewrite​(java.lang.String fuzzyRewrite)
      Sets the fuzzy_rewrite parameter controlling how the fuzzy query will get rewritten
    • fuzzyRewrite

      public java.lang.String fuzzyRewrite()
      Get the fuzzy_rewrite parameter
      See Also:
    • fuzzyTranspositions

      public MatchQueryBuilder fuzzyTranspositions​(boolean fuzzyTranspositions)
      Sets whether transpositions are supported in fuzzy queries.

      The default metric used by fuzzy queries to determine a match is the Damerau-Levenshtein distance formula which supports transpositions. Setting transposition to false will switch to classic Levenshtein distance.
      If not set, Damerau-Levenshtein distance metric will be used.

    • fuzzyTranspositions

      public boolean fuzzyTranspositions()
      Gets the fuzzy query transposition setting.
    • lenient

      public MatchQueryBuilder lenient​(boolean lenient)
      Sets whether format based failures will be ignored.
    • lenient

      public boolean lenient()
      Gets leniency setting that controls if format based failures will be ignored.
    • zeroTermsQuery

      public MatchQueryBuilder zeroTermsQuery​(MatchQueryParser.ZeroTermsQuery zeroTermsQuery)
      Sets query to use in case no query terms are available, e.g. after analysis removed them. Defaults to MatchQueryParser.ZeroTermsQuery.NONE, but can be set to MatchQueryParser.ZeroTermsQuery.ALL instead.
    • zeroTermsQuery

      public MatchQueryParser.ZeroTermsQuery zeroTermsQuery()
      Returns the setting for handling zero terms queries.
    • autoGenerateSynonymsPhraseQuery

      public MatchQueryBuilder autoGenerateSynonymsPhraseQuery​(boolean enable)
    • autoGenerateSynonymsPhraseQuery

      public boolean autoGenerateSynonymsPhraseQuery()
      Whether phrase queries should be automatically generated for multi terms synonyms. Defaults to true.
    • doXContent

      public void doXContent​(org.elasticsearch.common.xcontent.XContentBuilder builder, org.elasticsearch.common.xcontent.ToXContent.Params params) throws
      Specified by:
      doXContent in class AbstractQueryBuilder<MatchQueryBuilder>
    • doToQuery

      protected doToQuery​(SearchExecutionContext context) throws
      Specified by:
      doToQuery in class AbstractQueryBuilder<MatchQueryBuilder>
    • doEquals

      protected boolean doEquals​(MatchQueryBuilder other)
      Description copied from class: AbstractQueryBuilder
      Indicates whether some other QueryBuilder object of the same type is "equal to" this one.
      Specified by:
      doEquals in class AbstractQueryBuilder<MatchQueryBuilder>
    • doHashCode

      protected int doHashCode()
      Specified by:
      doHashCode in class AbstractQueryBuilder<MatchQueryBuilder>
    • getWriteableName

      public java.lang.String getWriteableName()
      Description copied from interface: NamedWriteable
      Returns the name of the writeable object
    • fromXContent

      public static MatchQueryBuilder fromXContent​(org.elasticsearch.common.xcontent.XContentParser parser) throws