You're viewing version 2.9 of the OpenSearch documentation. This version is no longer maintained. For the latest version, see the current documentation. For information about OpenSearch version maintenance, see Release Schedule and Maintenance Policy.
Prefix query
Use the prefix
query to search for terms that begin with a specific prefix. For example, the following query searches for documents in which the speaker
field contains a term that starts with KING H
:
GET shakespeare/_search
{
"query": {
"prefix": {
"speaker": "KING H"
}
}
}
To provide parameters, you can use a query equivalent to the preceding one with the following extended syntax:
GET shakespeare/_search
{
"query": {
"prefix": {
"speaker": {
"value": "KING H"
}
}
}
}
Parameters
The query accepts the name of the field (<field>
) as a top-level parameter:
GET _search
{
"query": {
"prefix": {
"<field>": {
"value": "sample",
...
}
}
}
}
The <field>
accepts the following parameters. All parameters except value
are optional.
Parameter | Data type | Description |
---|---|---|
value | String | The term to search for in the field specified in <field> . |
case_insensitive | Boolean | If true , allows case-insensitive matching of the value with the indexed field values. Default is false (case sensitivity is determined by the field’s mapping). |
rewrite | String | Determines how OpenSearch rewrites and scores multi-term queries. Valid values are constant_score , scoring_boolean , constant_score_boolean , top_terms_N , top_terms_boost_N , and top_terms_blended_freqs_N . Default is constant_score . |
If search.allow_expensive_queries
is set to false
, prefix queries are not run. If index_prefixes
is enabled, the search.allow_expensive_queries
setting is ignored and an optimized query is built and run.