Simple Query String Queryedit
A 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:
GET /_search { "query": { "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 Syntaxedit
The 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 Fieldedit
When 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 Fieldedit
The fields parameter can also include pattern based field names, allowing to automatically expand to the relevant fields (dynamically introduced fields included). For example:
GET /_search { "query": { "simple_query_string" : { "fields" : ["content", "name.*^5"], "query" : "foo bar baz" } } }
Flagsedit
simple_query_string
support multiple flags to specify which parsing features
should be enabled. It is specified as a |
-delimited string with the
flags
parameter:
GET /_search { "query": { "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
.