Prefix query
editPrefix query
editReturns documents that contain a specific prefix in a provided field.
Example request
editThe following search returns documents where the user field contains a term
that begins with ki.
GET /_search
{
"query": {
"prefix": {
"user": {
"value": "ki"
}
}
}
}
Top-level parameters for prefix
edit-
<field> - (Required, object) Field you wish to search.
Parameters for <field>
edit-
value -
(Required, string) Beginning characters of terms you wish to find in the
provided
<field>. -
rewrite -
(Optional, string) Method used to rewrite the query. For valid values and more
information, see the
rewriteparameter.
Notes
editShort request example
editYou can simplify the prefix query syntax by combining the <field> and
value parameters. For example:
GET /_search
{
"query": {
"prefix" : { "user" : "ki" }
}
}
Speed up prefix queries
editYou can speed up prefix queries using the index_prefixes
mapping parameter. If enabled, Elasticsearch indexes prefixes between 2 and 5
characters in a separate field. This lets Elasticsearch run prefix queries more
efficiently at the cost of a larger index.
Allow expensive queries
editPrefix queries will not be executed if search.allow_expensive_queries
is set to false. However, if index_prefixes are enabled, an optimised query is built which
is not considered slow, and will be executed in spite of this setting.