WARNING: Version 2.3 of Elasticsearch has passed its EOL date.
This documentation is no longer being maintained and may be removed. If you are running this version, we strongly advise you to upgrade. For the latest information, see the current release documentation.
Simple Query String Query
editSimple Query String Query
editA query that uses the SimpleQueryParser to parse its context. Unlike the
regular query_string
query, the simple_query_string
query will never
throw an exception, and discards invalid parts of the query. Here is
an example:
{ "simple_query_string" : { "query": "\"fried eggs\" +(eggplant | potato) -frittata", "analyzer": "snowball", "fields": ["body^5","_all"], "default_operator": "and" } }
The simple_query_string
top level parameters include:
Parameter | Description |
---|---|
|
The actual query to be parsed. See below for syntax. |
|
The fields to perform the parsed query against. Defaults to the
|
|
The default operator used if no explicit operator
is specified. For example, with a default operator of |
|
The analyzer used to analyze each term of the query when creating composite queries. |
|
Flags specifying which features of the |
|
Whether terms of prefix and fuzzy queries should
be automatically lower-cased or not (since they are not analyzed). Defaults to
|
|
Whether terms of prefix queries should be automatically
analyzed or not. If |
|
Locale that should be used for string conversions.
Defaults to |
|
If set to |
|
The minimum number of clauses that must match for a
document to be returned. See the
|
Simple Query String Syntax
editThe simple_query_string
supports the following special characters:
-
+
signifies AND operation -
|
signifies OR operation -
-
negates a single token -
"
wraps a number of tokens to signify a phrase for searching -
*
at the end of a term signifies a prefix query -
(
and)
signify precedence -
~N
after a word signifies edit distance (fuzziness) -
~N
after a phrase signifies slop amount
In order to search for any of these special characters, they will need to
be escaped with \
.
Default Field
editWhen not explicitly specifying the field to search on in the query
string syntax, the index.query.default_field
will be used to derive
which field to search on. It defaults to _all
field.
So, if _all
field is disabled, it might make sense to change it to set
a different default field.
Multi Field
editThe fields parameter can also include pattern based field names, allowing to automatically expand to the relevant fields (dynamically introduced fields included). For example:
{ "simple_query_string" : { "fields" : ["content", "name.*^5"], "query" : "foo bar baz" } }
Flags
editsimple_query_string
support multiple flags to specify which parsing features
should be enabled. It is specified as a |
-delimited string with the
flags
parameter:
{ "simple_query_string" : { "query" : "foo | bar + baz*", "flags" : "OR|AND|PREFIX" } }
The available flags are: ALL
, NONE
, AND
, OR
, NOT
, PREFIX
, PHRASE
,
PRECEDENCE
, ESCAPE
, WHITESPACE
, FUZZY
, NEAR
, and SLOP
.