Class QueryStringQueryBuilder
- java.lang.Object
-
- org.elasticsearch.index.query.AbstractQueryBuilder<QueryStringQueryBuilder>
-
- org.elasticsearch.index.query.QueryStringQueryBuilder
-
- All Implemented Interfaces:
NamedWriteable
,Writeable
,ToXContent
,ToXContentObject
,QueryBuilder
,Rewriteable<QueryBuilder>
public class QueryStringQueryBuilder extends AbstractQueryBuilder<QueryStringQueryBuilder>
A query that parses a query string and runs it. There are two modes that this operates. The first, when no field is added (usingfield(String)
, will run the query once and non prefixed fields will use thedefaultField(String)
set. The second, when one or more fields are added (usingfield(String)
), will run the parsed query against the provided fields, and combine them using Dismax.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.elasticsearch.common.xcontent.ToXContent
ToXContent.DelegatingMapParams, ToXContent.MapParams, ToXContent.Params
-
Nested classes/interfaces inherited from interface org.elasticsearch.common.io.stream.Writeable
Writeable.Reader<V>, Writeable.Writer<V>
-
-
Field Summary
Fields Modifier and Type Field Description static boolean
DEFAULT_ENABLE_POSITION_INCREMENTS
static boolean
DEFAULT_ESCAPE
static Fuzziness
DEFAULT_FUZZINESS
static int
DEFAULT_FUZZY_MAX_EXPANSIONS
static int
DEFAULT_FUZZY_PREFIX_LENGTH
static boolean
DEFAULT_FUZZY_TRANSPOSITIONS
static int
DEFAULT_MAX_DETERMINED_STATES
static Operator
DEFAULT_OPERATOR
static int
DEFAULT_PHRASE_SLOP
static MultiMatchQueryBuilder.Type
DEFAULT_TYPE
static java.lang.String
NAME
-
Fields inherited from class org.elasticsearch.index.query.AbstractQueryBuilder
boost, BOOST_FIELD, DEFAULT_BOOST, NAME_FIELD, queryName
-
Fields inherited from interface org.elasticsearch.index.query.Rewriteable
MAX_REWRITE_ROUNDS
-
Fields inherited from interface org.elasticsearch.common.xcontent.ToXContent
EMPTY_PARAMS
-
-
Constructor Summary
Constructors Constructor Description QueryStringQueryBuilder(java.lang.String queryString)
QueryStringQueryBuilder(StreamInput in)
Read from a stream.
-
Method Summary
Modifier and Type Method Description java.lang.Boolean
allowLeadingWildcard()
QueryStringQueryBuilder
allowLeadingWildcard(java.lang.Boolean allowLeadingWildcard)
Should leading wildcards be allowed or not.java.lang.String
analyzer()
The optional analyzer used to analyze the query string.QueryStringQueryBuilder
analyzer(java.lang.String analyzer)
The optional analyzer used to analyze the query string.java.lang.Boolean
analyzeWildcard()
QueryStringQueryBuilder
analyzeWildcard(java.lang.Boolean analyzeWildcard)
Set totrue
to enable analysis on wildcard and prefix queries.boolean
autoGeneratePhraseQueries()
Deprecated.QueryStringQueryBuilder
autoGeneratePhraseQueries(boolean autoGeneratePhraseQueries)
Deprecated.boolean
autoGenerateSynonymsPhraseQuery()
Whether phrase queries should be automatically generated for multi terms synonyms.QueryStringQueryBuilder
autoGenerateSynonymsPhraseQuery(boolean value)
java.lang.String
defaultField()
QueryStringQueryBuilder
defaultField(java.lang.String defaultField)
The default field to run against when no prefix field is specified.Operator
defaultOperator()
QueryStringQueryBuilder
defaultOperator(Operator defaultOperator)
Sets the boolean operator of the query parser used to parse the query string.protected boolean
doEquals(QueryStringQueryBuilder other)
Indicates whether some otherQueryBuilder
object of the same type is "equal to" this one.protected int
doHashCode()
protected org.apache.lucene.search.Query
doToQuery(QueryShardContext context)
protected void
doWriteTo(StreamOutput out)
protected void
doXContent(XContentBuilder builder, ToXContent.Params params)
boolean
enablePositionIncrements()
QueryStringQueryBuilder
enablePositionIncrements(boolean enablePositionIncrements)
Set totrue
to enable position increments in result query.boolean
escape()
QueryStringQueryBuilder
escape(boolean escape)
Set totrue
to enable escaping of the query stringQueryStringQueryBuilder
field(java.lang.String field)
Adds a field to run the query string against.QueryStringQueryBuilder
field(java.lang.String field, float boost)
Adds a field to run the query string against with a specific boost.java.util.Map<java.lang.String,java.lang.Float>
fields()
Returns the fields including their respective boosts to run the query against.QueryStringQueryBuilder
fields(java.util.Map<java.lang.String,java.lang.Float> fields)
Add several fields to run the query against with a specific boost.static QueryStringQueryBuilder
fromXContent(XContentParser parser)
Fuzziness
fuzziness()
QueryStringQueryBuilder
fuzziness(Fuzziness fuzziness)
Set the edit distance for fuzzy queries.int
fuzzyMaxExpansions()
QueryStringQueryBuilder
fuzzyMaxExpansions(int fuzzyMaxExpansions)
int
fuzzyPrefixLength()
QueryStringQueryBuilder
fuzzyPrefixLength(int fuzzyPrefixLength)
Set the minimum prefix length for fuzzy queries.java.lang.String
fuzzyRewrite()
QueryStringQueryBuilder
fuzzyRewrite(java.lang.String fuzzyRewrite)
boolean
fuzzyTranspositions()
QueryStringQueryBuilder
fuzzyTranspositions(boolean fuzzyTranspositions)
Sets whether transpositions are supported in fuzzy queries.java.lang.String
getWriteableName()
Returns the name of the writeable objectjava.lang.Boolean
lenient()
QueryStringQueryBuilder
lenient(java.lang.Boolean lenient)
Sets the query string parser to be lenient when parsing field values, defaults to the index setting and if not set, defaults to false.int
maxDeterminizedStates()
QueryStringQueryBuilder
maxDeterminizedStates(int maxDeterminizedStates)
Protects against too-difficult regular expression queries.java.lang.String
minimumShouldMatch()
QueryStringQueryBuilder
minimumShouldMatch(java.lang.String minimumShouldMatch)
int
phraseSlop()
QueryStringQueryBuilder
phraseSlop(int phraseSlop)
Sets the default slop for phrases.java.lang.String
queryString()
java.lang.String
quoteAnalyzer()
The optional analyzer used to analyze the query string for phrase searches.QueryStringQueryBuilder
quoteAnalyzer(java.lang.String quoteAnalyzer)
The optional analyzer used to analyze the query string for phrase searches.java.lang.String
quoteFieldSuffix()
QueryStringQueryBuilder
quoteFieldSuffix(java.lang.String quoteFieldSuffix)
An optional field name suffix to automatically try and add to the field searched when using quoted text.java.lang.String
rewrite()
QueryStringQueryBuilder
rewrite(java.lang.String rewrite)
boolean
splitOnWhitespace()
Deprecated.QueryStringQueryBuilder
splitOnWhitespace(boolean value)
Deprecated.java.lang.Float
tieBreaker()
QueryStringQueryBuilder
tieBreaker(float tieBreaker)
When more than one field is used with the query string, and combined queries are using dis max, control the tie breaker for it.org.joda.time.DateTimeZone
timeZone()
QueryStringQueryBuilder
timeZone(java.lang.String timeZone)
In case of date field, we can adjust the from/to fields using a timezoneQueryStringQueryBuilder
timeZone(org.joda.time.DateTimeZone timeZone)
QueryStringQueryBuilder
type(MultiMatchQueryBuilder.Type type)
java.lang.Boolean
useAllFields()
Deprecated.QueryStringQueryBuilder
useAllFields(java.lang.Boolean useAllFields)
Deprecated.boolean
useDisMax()
Deprecated.QueryStringQueryBuilder
useDisMax(boolean useDisMax)
Deprecated.-
Methods inherited from class org.elasticsearch.index.query.AbstractQueryBuilder
addValidationError, boost, boost, checkNegativeBoost, declareStandardFields, doRewrite, equals, extractInnerHitBuilders, getName, hashCode, parseInnerQueryBuilder, printBoostAndQueryName, queryName, queryName, requireValue, rewrite, throwParsingExceptionOnMultipleFields, toFilter, toQuery, toString, toString, toXContent, writeTo
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.elasticsearch.common.xcontent.ToXContentObject
isFragment
-
-
-
-
Field Detail
-
NAME
public static final java.lang.String NAME
- See Also:
- Constant Field Values
-
DEFAULT_MAX_DETERMINED_STATES
public static final int DEFAULT_MAX_DETERMINED_STATES
- See Also:
- Constant Field Values
-
DEFAULT_ENABLE_POSITION_INCREMENTS
public static final boolean DEFAULT_ENABLE_POSITION_INCREMENTS
- See Also:
- Constant Field Values
-
DEFAULT_ESCAPE
public static final boolean DEFAULT_ESCAPE
- See Also:
- Constant Field Values
-
DEFAULT_FUZZY_PREFIX_LENGTH
public static final int DEFAULT_FUZZY_PREFIX_LENGTH
- See Also:
- Constant Field Values
-
DEFAULT_FUZZY_MAX_EXPANSIONS
public static final int DEFAULT_FUZZY_MAX_EXPANSIONS
- See Also:
- Constant Field Values
-
DEFAULT_PHRASE_SLOP
public static final int DEFAULT_PHRASE_SLOP
- See Also:
- Constant Field Values
-
DEFAULT_FUZZINESS
public static final Fuzziness DEFAULT_FUZZINESS
-
DEFAULT_OPERATOR
public static final Operator DEFAULT_OPERATOR
-
DEFAULT_TYPE
public static final MultiMatchQueryBuilder.Type DEFAULT_TYPE
-
DEFAULT_FUZZY_TRANSPOSITIONS
public static final boolean DEFAULT_FUZZY_TRANSPOSITIONS
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
QueryStringQueryBuilder
public QueryStringQueryBuilder(java.lang.String queryString)
-
QueryStringQueryBuilder
public QueryStringQueryBuilder(StreamInput in) throws java.io.IOException
Read from a stream.- Throws:
java.io.IOException
-
-
Method Detail
-
doWriteTo
protected void doWriteTo(StreamOutput out) throws java.io.IOException
- Specified by:
doWriteTo
in classAbstractQueryBuilder<QueryStringQueryBuilder>
- Throws:
java.io.IOException
-
queryString
public java.lang.String queryString()
-
defaultField
public QueryStringQueryBuilder defaultField(java.lang.String defaultField)
The default field to run against when no prefix field is specified. Only relevant when not explicitly adding fields the query string will run against.
-
defaultField
public java.lang.String defaultField()
-
useAllFields
@Deprecated public QueryStringQueryBuilder useAllFields(java.lang.Boolean useAllFields)
Deprecated.This setting is deprecated, setdefaultField(String)
to "*" instead.
-
useAllFields
@Deprecated public java.lang.Boolean useAllFields()
Deprecated.
-
field
public QueryStringQueryBuilder field(java.lang.String field)
Adds a field to run the query string against. The field will be associated with the default boost ofAbstractQueryBuilder.DEFAULT_BOOST
. Usefield(String, float)
to set a specific boost for the field.
-
field
public QueryStringQueryBuilder field(java.lang.String field, float boost)
Adds a field to run the query string against with a specific boost.
-
fields
public QueryStringQueryBuilder 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.
-
type
public QueryStringQueryBuilder type(MultiMatchQueryBuilder.Type type)
- Parameters:
type
- Sets how multiple fields should be combined to build textual part queries.
-
useDisMax
@Deprecated public QueryStringQueryBuilder useDisMax(boolean useDisMax)
Deprecated.UsetieBreaker
instead.
-
useDisMax
@Deprecated public boolean useDisMax()
Deprecated.UsetieBreaker
instead.
-
tieBreaker
public QueryStringQueryBuilder tieBreaker(float tieBreaker)
When more than one field is used with the query string, and combined queries are using dis max, control the tie breaker for it.
-
tieBreaker
public java.lang.Float tieBreaker()
-
defaultOperator
public QueryStringQueryBuilder defaultOperator(Operator defaultOperator)
Sets the boolean operator of the query parser used to parse the query string.In default mode (
Operator.OR
) terms without any modifiers are considered optional: for examplecapital of Hungary
is equal tocapital OR of OR Hungary
.In
Operator.AND
mode terms are considered to be in conjunction: the above mentioned query is parsed ascapital AND of AND Hungary
-
defaultOperator
public Operator defaultOperator()
-
analyzer
public QueryStringQueryBuilder analyzer(java.lang.String analyzer)
The optional analyzer used to analyze the query string. Note, if a field has search analyzer defined for it, then it will be used automatically. Defaults to the smart search analyzer.
-
analyzer
public java.lang.String analyzer()
The optional analyzer used to analyze the query string. Note, if a field has search analyzer defined for it, then it will be used automatically. Defaults to the smart search analyzer.
-
quoteAnalyzer
public java.lang.String quoteAnalyzer()
The optional analyzer used to analyze the query string for phrase searches. Note, if a field has search (quote) analyzer defined for it, then it will be used automatically. Defaults to the smart search analyzer.
-
quoteAnalyzer
public QueryStringQueryBuilder quoteAnalyzer(java.lang.String quoteAnalyzer)
The optional analyzer used to analyze the query string for phrase searches. Note, if a field has search (quote) analyzer defined for it, then it will be used automatically. Defaults to the smart search analyzer.
-
autoGeneratePhraseQueries
@Deprecated public QueryStringQueryBuilder autoGeneratePhraseQueries(boolean autoGeneratePhraseQueries)
Deprecated.This setting is ignored
-
autoGeneratePhraseQueries
@Deprecated public boolean autoGeneratePhraseQueries()
Deprecated.This setting is ignored
-
maxDeterminizedStates
public QueryStringQueryBuilder maxDeterminizedStates(int maxDeterminizedStates)
Protects against too-difficult regular expression queries.
-
maxDeterminizedStates
public int maxDeterminizedStates()
-
allowLeadingWildcard
public QueryStringQueryBuilder allowLeadingWildcard(java.lang.Boolean allowLeadingWildcard)
Should leading wildcards be allowed or not. Defaults totrue
.
-
allowLeadingWildcard
public java.lang.Boolean allowLeadingWildcard()
-
enablePositionIncrements
public QueryStringQueryBuilder enablePositionIncrements(boolean enablePositionIncrements)
Set totrue
to enable position increments in result query. Defaults totrue
.When set, result phrase and multi-phrase queries will be aware of position increments. Useful when e.g. a StopFilter increases the position increment of the token that follows an omitted token.
-
enablePositionIncrements
public boolean enablePositionIncrements()
-
fuzziness
public QueryStringQueryBuilder fuzziness(Fuzziness fuzziness)
Set the edit distance for fuzzy queries. Default is "AUTO".
-
fuzziness
public Fuzziness fuzziness()
-
fuzzyPrefixLength
public QueryStringQueryBuilder fuzzyPrefixLength(int fuzzyPrefixLength)
Set the minimum prefix length for fuzzy queries. Default is 1.
-
fuzzyPrefixLength
public int fuzzyPrefixLength()
-
fuzzyMaxExpansions
public QueryStringQueryBuilder fuzzyMaxExpansions(int fuzzyMaxExpansions)
-
fuzzyMaxExpansions
public int fuzzyMaxExpansions()
-
fuzzyRewrite
public QueryStringQueryBuilder fuzzyRewrite(java.lang.String fuzzyRewrite)
-
fuzzyRewrite
public java.lang.String fuzzyRewrite()
-
phraseSlop
public QueryStringQueryBuilder phraseSlop(int phraseSlop)
Sets the default slop for phrases. If zero, then exact phrase matches are required. Default value is zero.
-
phraseSlop
public int phraseSlop()
-
rewrite
public QueryStringQueryBuilder rewrite(java.lang.String rewrite)
-
analyzeWildcard
public QueryStringQueryBuilder analyzeWildcard(java.lang.Boolean analyzeWildcard)
Set totrue
to enable analysis on wildcard and prefix queries.
-
analyzeWildcard
public java.lang.Boolean analyzeWildcard()
-
rewrite
public java.lang.String rewrite()
-
minimumShouldMatch
public QueryStringQueryBuilder minimumShouldMatch(java.lang.String minimumShouldMatch)
-
minimumShouldMatch
public java.lang.String minimumShouldMatch()
-
quoteFieldSuffix
public QueryStringQueryBuilder quoteFieldSuffix(java.lang.String quoteFieldSuffix)
An optional field name suffix to automatically try and add to the field searched when using quoted text.
-
quoteFieldSuffix
public java.lang.String quoteFieldSuffix()
-
lenient
public QueryStringQueryBuilder lenient(java.lang.Boolean lenient)
Sets the query string parser to be lenient when parsing field values, defaults to the index setting and if not set, defaults to false.
-
lenient
public java.lang.Boolean lenient()
-
timeZone
public QueryStringQueryBuilder timeZone(java.lang.String timeZone)
In case of date field, we can adjust the from/to fields using a timezone
-
timeZone
public QueryStringQueryBuilder timeZone(org.joda.time.DateTimeZone timeZone)
-
timeZone
public org.joda.time.DateTimeZone timeZone()
-
escape
public QueryStringQueryBuilder escape(boolean escape)
Set totrue
to enable escaping of the query string
-
escape
public boolean escape()
-
splitOnWhitespace
@Deprecated public QueryStringQueryBuilder splitOnWhitespace(boolean value)
Deprecated.This setting is ignored, this query parser splits on operator only.
-
splitOnWhitespace
@Deprecated public boolean splitOnWhitespace()
Deprecated.This setting is ignored, this query parser splits on operator only.
-
autoGenerateSynonymsPhraseQuery
public QueryStringQueryBuilder autoGenerateSynonymsPhraseQuery(boolean value)
-
autoGenerateSynonymsPhraseQuery
public boolean autoGenerateSynonymsPhraseQuery()
Whether phrase queries should be automatically generated for multi terms synonyms. Defaults totrue
.
-
fuzzyTranspositions
public boolean fuzzyTranspositions()
-
fuzzyTranspositions
public QueryStringQueryBuilder 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.
-
doXContent
protected void doXContent(XContentBuilder builder, ToXContent.Params params) throws java.io.IOException
- Specified by:
doXContent
in classAbstractQueryBuilder<QueryStringQueryBuilder>
- Throws:
java.io.IOException
-
fromXContent
public static QueryStringQueryBuilder fromXContent(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
-
doEquals
protected boolean doEquals(QueryStringQueryBuilder other)
Description copied from class:AbstractQueryBuilder
Indicates whether some otherQueryBuilder
object of the same type is "equal to" this one.- Specified by:
doEquals
in classAbstractQueryBuilder<QueryStringQueryBuilder>
-
doHashCode
protected int doHashCode()
- Specified by:
doHashCode
in classAbstractQueryBuilder<QueryStringQueryBuilder>
-
doToQuery
protected org.apache.lucene.search.Query doToQuery(QueryShardContext context) throws java.io.IOException
- Specified by:
doToQuery
in classAbstractQueryBuilder<QueryStringQueryBuilder>
- Throws:
java.io.IOException
-
-