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"
}
}
}
copy
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"
}
}
}
}
copy
Parameters
The query accepts the name of the field (<field>
) as a top-level parameter:
GET _search
{
"query": {
"prefix": {
"<field>": {
"value": "sample",
...
}
}
}
}
copy
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.