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.id
field contains a term
that begins with ki
.
GET /_search { "query": { "prefix": { "user.id": { "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
rewrite
parameter.
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.