Class 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 String NAME
      Name for (de-)serialization.
      See Also:
      Constant Field Values
  • Constructor Details

    • SimpleQueryStringBuilder

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

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

    • doWriteTo

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

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

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

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

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

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

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

      public 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

      Specify the enabled features of the SimpleQueryString. Defaults to ALL if none are specified.
    • quoteFieldSuffix

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

      public 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(String minimumShouldMatch)
      Specifies the minimumShouldMatch to apply to the resulting query should that be a Boolean query.
    • minimumShouldMatch

      public 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 IOException
      Specified by:
      doToQuery in class AbstractQueryBuilder<SimpleQueryStringBuilder>
      Throws:
      IOException
    • doXContent

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

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

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