This documentation contains work-in-progress information for future Elastic Stack and Cloud releases. Use the version selector to view supported release docs. It also contains some Elastic Cloud serverless information. Check out our serverless docs for more details.
Span multi-term query
editSpan multi-term query
editThe span_multi
query allows you to wrap a multi term query
(one of wildcard,
fuzzy, prefix, range or regexp query) as a span query
, so
it can be nested. Example:
resp = client.search( query={ "span_multi": { "match": { "prefix": { "user.id": { "value": "ki" } } } } }, ) print(resp)
response = client.search( body: { query: { span_multi: { match: { prefix: { 'user.id' => { value: 'ki' } } } } } } ) puts response
const response = await client.search({ query: { span_multi: { match: { prefix: { "user.id": { value: "ki", }, }, }, }, }, }); console.log(response);
GET /_search { "query": { "span_multi": { "match": { "prefix": { "user.id": { "value": "ki" } } } } } }
A boost can also be associated with the query:
resp = client.search( query={ "span_multi": { "match": { "prefix": { "user.id": { "value": "ki", "boost": 1.08 } } } } }, ) print(resp)
response = client.search( body: { query: { span_multi: { match: { prefix: { 'user.id' => { value: 'ki', boost: 1.08 } } } } } } ) puts response
const response = await client.search({ query: { span_multi: { match: { prefix: { "user.id": { value: "ki", boost: 1.08, }, }, }, }, }, }); console.log(response);
GET /_search { "query": { "span_multi": { "match": { "prefix": { "user.id": { "value": "ki", "boost": 1.08 } } } } } }
span_multi
queries will hit too many clauses failure if the number of terms that match the query exceeds the
indices.query.bool.max_clause_count
search setting.
To avoid an unbounded expansion you can set the rewrite method of the multi term query to top_terms_*
rewrite. Or, if you use span_multi
on prefix
query only,
you can activate the index_prefixes
field option of the text
field instead. This will
rewrite any prefix query on the field to a single term query that matches the indexed prefix.