IMPORTANT: No additional bug fixes or documentation updates
will be released for this version. For the latest information, see the
current release documentation.
Text expansion query
edit
IMPORTANT: This documentation is no longer updated. Refer to Elastic's version policy and the latest documentation.
Text expansion query
editThe text expansion query uses a natural language processing model to convert the query text into a list of token-weight pairs which are then used in a query against a sparse vector or rank features field.
Example request
editresponse = client.search(
body: {
query: {
text_expansion: {
"<sparse_vector_field>": {
model_id: 'the model to produce the token weights',
model_text: 'the query string'
}
}
}
}
)
puts response
GET _search
{
"query":{
"text_expansion":{
"<sparse_vector_field>":{
"model_id":"the model to produce the token weights",
"model_text":"the query string"
}
}
}
}
Top level parameters for text_expansion
edit-
<sparse_vector_field> - (Required, object) The name of the field that contains the token-weight pairs the NLP model created based on the input text.
Top level parameters for <sparse_vector_field>
edit-
model_id - (Required, string) The ID of the model to use to convert the query text into token-weight pairs. It must be the same model ID that was used to create the tokens from the input text.
-
model_text - (Required, string) The query text you want to use for search.
Example
editThe following is an example of the text_expansion query that references the
ELSER model to perform semantic search. For a more detailed description of how
to perform semantic search by using ELSER and the text_expansion query, refer
to this tutorial.
GET my-index/_search
{
"query":{
"text_expansion":{
"ml.tokens":{
"model_id":".elser_model_1",
"model_text":"How is the weather in Jamaica?"
}
}
}
}
Depending on your data, the text expansion query may be faster with track_total_hits: false.