Class SimpleQueryStringBuilder

java.lang.Object
org.elasticsearch.index.query.AbstractQueryBuilder<SimpleQueryStringBuilder>
org.elasticsearch.index.query.SimpleQueryStringBuilder
All Implemented Interfaces:
NamedWriteable, Writeable, org.elasticsearch.common.xcontent.ToXContent, org.elasticsearch.common.xcontent.ToXContentObject, QueryBuilder, Rewriteable<QueryBuilder>

public class SimpleQueryStringBuilder
extends AbstractQueryBuilder<SimpleQueryStringBuilder>
SimpleQuery is a query parser that acts similar to a query_string query, but won't throw exceptions for any weird string syntax. It supports the following:
  • '+' specifies AND operation: token1+token2
  • '|' specifies OR operation: token1|token2
  • '-' negates a single token: -token0
  • '"' creates phrases of terms: "term1 term2 ..."
  • '*' at the end of terms specifies prefix query: term*
  • '(' and ')' specifies precedence: token1 + (token2 | token3)
  • '~N' at the end of terms specifies fuzzy query: term~1
  • '~N' at the end of phrases specifies near/slop query: "term1 term2"~5

See: SimpleQueryStringQueryParser for more information.

This query supports these options:

Required: query - query text to be converted into other queries

Optional: analyzer - anaylzer to be used for analyzing tokens to determine which kind of query they should be converted into, defaults to "standard" default_operator - default operator for boolean queries, defaults to OR fields - fields to search, defaults to _all if not set, allows boosting a field with ^n For more detailed explanation of the query string syntax see also the online documentation.

  • Field Details

    • DEFAULT_LENIENT

      public static final boolean DEFAULT_LENIENT
      Default for using lenient query parsing.
      See Also:
      Constant Field Values
    • DEFAULT_ANALYZE_WILDCARD

      public static final boolean DEFAULT_ANALYZE_WILDCARD
      Default for wildcard analysis.
      See Also:
      Constant Field Values
    • DEFAULT_OPERATOR

      public static final Operator DEFAULT_OPERATOR
      Default for default operator to use for linking boolean clauses.
    • DEFAULT_FLAGS

      public static final int DEFAULT_FLAGS
      Default for search flags to use.
    • DEFAULT_FUZZY_PREFIX_LENGTH

      public static final int DEFAULT_FUZZY_PREFIX_LENGTH
      Default for prefix length in fuzzy queries.
      See Also:
      Constant Field Values
    • DEFAULT_FUZZY_MAX_EXPANSIONS

      public static final int DEFAULT_FUZZY_MAX_EXPANSIONS
      Default number of terms fuzzy queries will expand to.
      See Also:
      Constant Field Values
    • DEFAULT_FUZZY_TRANSPOSITIONS

      public static final boolean DEFAULT_FUZZY_TRANSPOSITIONS
      Default for using transpositions in fuzzy queries.
      See Also:
      Constant Field Values
    • NAME

      public static final java.lang.String NAME
      Name for (de-)serialization.
      See Also:
      Constant Field Values
  • Constructor Details

    • SimpleQueryStringBuilder

      public SimpleQueryStringBuilder​(java.lang.String queryText)
      Construct a new simple query with this query string.
    • SimpleQueryStringBuilder

      public SimpleQueryStringBuilder​(StreamInput in) throws java.io.IOException
      Read from a stream.
      Throws:
      java.io.IOException
  • Method Details

    • doWriteTo

      protected void doWriteTo​(StreamOutput out) throws java.io.IOException
      Specified by:
      doWriteTo in class AbstractQueryBuilder<SimpleQueryStringBuilder>
      Throws:
      java.io.IOException
    • value

      public java.lang.String value()
      Returns the text to parse the query from.
    • field

      public SimpleQueryStringBuilder field​(java.lang.String field)
      Add a field to run the query against.
    • field

      public SimpleQueryStringBuilder field​(java.lang.String field, float boost)
      Add a field to run the query against with a specific boost.
    • fields

      public SimpleQueryStringBuilder fields​(java.util.Map<java.lang.String,​java.lang.Float> fields)
      Add several fields to run the query against with a specific boost.
    • fields

      public java.util.Map<java.lang.String,​java.lang.Float> fields()
      Returns the fields including their respective boosts to run the query against.
    • analyzer

      public SimpleQueryStringBuilder analyzer​(java.lang.String analyzer)
      Specify an analyzer to use for the query.
    • analyzer

      public java.lang.String analyzer()
      Returns the analyzer to use for the query.
    • defaultOperator

      public SimpleQueryStringBuilder defaultOperator​(Operator defaultOperator)
      Specify the default operator for the query. Defaults to "OR" if no operator is specified.
    • defaultOperator

      public Operator defaultOperator()
      Returns the default operator for the query.
    • flags

      public SimpleQueryStringBuilder flags​(SimpleQueryStringFlag... flags)
      Specify the enabled features of the SimpleQueryString. Defaults to ALL if none are specified.
    • quoteFieldSuffix

      public SimpleQueryStringBuilder quoteFieldSuffix​(java.lang.String suffix)
      Set the suffix to append to field names for phrase matching.
    • quoteFieldSuffix

      public java.lang.String quoteFieldSuffix()
      Return the suffix to append to field names for phrase matching.
    • lenient

      public SimpleQueryStringBuilder lenient​(boolean lenient)
      Specifies whether query parsing should be lenient. Defaults to false.
    • lenient

      public boolean lenient()
      Returns whether query parsing should be lenient.
    • analyzeWildcard

      public SimpleQueryStringBuilder analyzeWildcard​(boolean analyzeWildcard)
      Specifies whether wildcards should be analyzed. Defaults to false.
    • analyzeWildcard

      public boolean analyzeWildcard()
      Returns whether wildcards should by analyzed.
    • minimumShouldMatch

      public SimpleQueryStringBuilder minimumShouldMatch​(java.lang.String minimumShouldMatch)
      Specifies the minimumShouldMatch to apply to the resulting query should that be a Boolean query.
    • minimumShouldMatch

      public java.lang.String minimumShouldMatch()
      Returns the minimumShouldMatch to apply to the resulting query should that be a Boolean query.
    • autoGenerateSynonymsPhraseQuery

      public SimpleQueryStringBuilder autoGenerateSynonymsPhraseQuery​(boolean value)
    • autoGenerateSynonymsPhraseQuery

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

      public SimpleQueryStringBuilder fuzzyPrefixLength​(int fuzzyPrefixLength)
    • fuzzyPrefixLength

      public int fuzzyPrefixLength()
    • fuzzyMaxExpansions

      public SimpleQueryStringBuilder fuzzyMaxExpansions​(int fuzzyMaxExpansions)
    • fuzzyMaxExpansions

      public int fuzzyMaxExpansions()
    • fuzzyTranspositions

      public boolean fuzzyTranspositions()
    • fuzzyTranspositions

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

    • doToQuery

      protected org.apache.lucene.search.Query doToQuery​(SearchExecutionContext context) throws java.io.IOException
      Specified by:
      doToQuery in class AbstractQueryBuilder<SimpleQueryStringBuilder>
      Throws:
      java.io.IOException
    • doXContent

      protected void doXContent​(org.elasticsearch.common.xcontent.XContentBuilder builder, org.elasticsearch.common.xcontent.ToXContent.Params params) throws java.io.IOException
      Specified by:
      doXContent in class AbstractQueryBuilder<SimpleQueryStringBuilder>
      Throws:
      java.io.IOException
    • fromXContent

      public static SimpleQueryStringBuilder fromXContent​(org.elasticsearch.common.xcontent.XContentParser parser) throws java.io.IOException
      Throws:
      java.io.IOException
    • getWriteableName

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

      protected int doHashCode()
      Specified by:
      doHashCode in class AbstractQueryBuilder<SimpleQueryStringBuilder>
    • doEquals

      protected boolean doEquals​(SimpleQueryStringBuilder 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<SimpleQueryStringBuilder>