AuthThe Elastic Stack includes Elastic's core products such as Elasticsearch, Kibana, Logstash, and Beats.AvailabilityGenerally available since 8.11This functionality is generally available and ready for production usage.Unless stated otherwise on the page, this functionality is available when your Elastic Stack is deployed on Elastic Cloud Hosted, Elastic Cloud Enterprise, Elastic Cloud on Kubernetes, and self-managed environments.This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes.Deprecated
Create an inference endpoint to perform an inference task with the elser service.
You can also deploy ELSER by using the Elasticsearch inference integration.
Note
Your Elasticsearch deployment contains a preconfigured ELSER inference endpoint, you only need to create the enpoint using the API if you want to customize the settings.
The API request will automatically download and deploy the ELSER model if it isn't already downloaded.
Note
You might see a 502 bad gateway error in the response when using the Kibana Console. This error usually just reflects a timeout, while the model downloads in the background. You can check the download progress in the Machine Learning UI. If using the Python client, you can set the timeout parameter to a higher value.
After creating the endpoint, wait for the model deployment to complete before using it.
To verify the deployment status, use the get trained model statistics API.
Look for "state": "fully_allocated" in the response and ensure that the "allocation_count" matches the "target_allocation_count".
Avoid creating multiple endpoints for the same model unless required, as each endpoint consumes significant resources.
The maximum size of a chunk in words.
This value cannot be lower than 20 (for sentence strategy) or 10 (for word strategy).
This value should not exceed the window size for the associated model.
overlapnumber · default: 100
The number of overlapping words for chunks.
It is applicable only to a word chunking strategy.
This value cannot be higher than half the max_chunk_size value.
sentence_overlapnumber · default: 1
The number of overlapping sentences for chunks.
It is applicable only for a sentence chunking strategy.
It can be either 1 or 0.
separator_groupstring
Only applicable to the recursive strategy and required when using it.
Sets a predefined list of separators in the saved chunking settings based on the selected text type.
Values can be markdown or plaintext.
Using this parameter is an alternative to manually specifying a custom separators list.
separatorsstring[]
Only applicable to the recursive strategy and required when using it.
A list of strings used as possible split points when chunking text.
Each string can be a plain string or a regular expression (regex) pattern.
The system tries each separator in order to split the text, starting from the first item in the list.
After splitting, it attempts to recombine smaller pieces into larger chunks that stay within
the max_chunk_size limit, to reduce the total number of chunks generated.
strategystring · default: sentence
The chunking strategy: sentence, word, none or recursive.
If strategy is set to recursive, you must also specify:
max_chunk_size
either separators orseparator_group
Learn more about different chunking strategies in the linked documentation.
The type of service supported for the specified task type. In this case, elser.
Values:elser
service_settingsobjectrequired
Settings used to install the inference model. These settings are specific to the elser service.
adaptive_allocationsobject
Adaptive allocations configuration details.
If enabled is true, the number of allocations of the model is set based on the current load the process gets.
When the load is high, a new model allocation is automatically created, respecting the value of max_number_of_allocations if it's set.
When the load is low, a model allocation is automatically removed, respecting the value of min_number_of_allocations if it's set.
If enabled is true, do not set the number of allocations manually.
enabledboolean · default: false
Turn on adaptive_allocations.
max_number_of_allocationsnumber
The maximum number of allocations to scale to.
If set, it must be greater than or equal to min_number_of_allocations.
min_number_of_allocationsnumber
The minimum number of allocations to scale to.
If set, it must be greater than or equal to 0.
If not defined, the deployment scales to 0.
num_allocationsnumberrequired
The total number of allocations this model is assigned across machine learning nodes.
Increasing this value generally increases the throughput.
If adaptive allocations is enabled, do not set this value because it's automatically set.
num_threadsnumberrequired
The number of threads used by each model allocation during inference.
Increasing this value generally increases the speed per inference request.
The inference process is a compute-bound process; threads_per_allocations must not exceed the number of available allocated processors per node.
The value must be a power of 2.
The maximum value is 32.
Note
If you want to optimize your ELSER endpoint for ingest, set the number of threads to 1. If you want to optimize your ELSER endpoint for search, set the number of threads to greater than 1.
The chunking configuration object.
Applies only to the embedding, sparse_embedding and text_embedding task types.
Not applicable to the rerank, completion, or chat_completion task types.
max_chunk_sizenumber · default: 250
The maximum size of a chunk in words.
This value cannot be lower than 20 (for sentence strategy) or 10 (for word strategy).
This value should not exceed the window size for the associated model.
overlapnumber · default: 100
The number of overlapping words for chunks.
It is applicable only to a word chunking strategy.
This value cannot be higher than half the max_chunk_size value.
sentence_overlapnumber · default: 1
The number of overlapping sentences for chunks.
It is applicable only for a sentence chunking strategy.
It can be either 1 or 0.
separator_groupstring
Only applicable to the recursive strategy and required when using it.
Sets a predefined list of separators in the saved chunking settings based on the selected text type.
Values can be markdown or plaintext.
Using this parameter is an alternative to manually specifying a custom separators list.
separatorsstring[]
Only applicable to the recursive strategy and required when using it.
A list of strings used as possible split points when chunking text.
Each string can be a plain string or a regular expression (regex) pattern.
The system tries each separator in order to split the text, starting from the first item in the list.
After splitting, it attempts to recombine smaller pieces into larger chunks that stay within
the max_chunk_size limit, to reduce the total number of chunks generated.
strategystring · default: sentence
The chunking strategy: sentence, word, none or recursive.
If strategy is set to recursive, you must also specify:
max_chunk_size
either separators orseparator_group
Learn more about different chunking strategies in the linked documentation.