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
.