InferenceStreamInference
DocumentationQueryRulesTest
DocumentationIngest.DeleteIPLocationDatabase
DocumentationIngest.GetIPLocationDatabase
DocumentationIngest.PutIPLocationDatabase
Documentation
Update APIs to latest elasticsearch-specification 8.16
- API is generated from the Elasticsearch 8.15.0 specification.
Update APIs to latest elasticsearch-specification 8.15
New APIs:
- ConnectorUpdateActiveFiltering Documentation
- ConnectorUpdateFilteringValidation Documentation
- TextStructureFindFieldStructure Documentation
- TextStructureFindMessageStructure Documentation
New APIs:
- UpdateTrainedModelDeployment Documentation
- Fixed a deadlock in the connection pool elastic/elastic-transport-go#20
Update APIs to latest elasticsearch-specification 8.13
This patch release brings a fix to the initialisation of the Request
in endpoints which would prevent using the shortcuts for fields.
Canonical.Request()
method was unaffected.
Autoscaling.PutAutoscalingPolicy
Indices.Downsample
Indices.PutSettings
Indices.SimulateTemplate
Inference.PutModel
Logstash.PutPipeline
Ml.ValidateDetector
SearchApplication.Put
New APIS:
-
ConnectorSecretGet
-
ConnectorSecretPost
-
ConnectorSecretPut
-
ConnectorSecretDelete
-
ConnectorUpdateIndexName
-
ConnectorUpdateNative
-
ConnectorUpdateStatus
-
ConnectorUpdateAPIKeyDocumentID
-
ConnectorUpdateServiceDocumentType
-
EsqlAsyncQuery
Documentation -
EsqlAsyncQueryGet
Documentation -
ProfilingFlamegraph
Documentation -
ProfilingStacktraces
Documentation -
TextStructureTestGrokPattern
Documentation -
Indices.ResolveCluster
Documentation -
Security.QueryUser
Documentation
indices.ResolveCluster
Documentationtextstructure.TestGrokPattern
Documentation
Thanks to @pakio, transport now has an optional pool based compression option. link
And to @tblyler for fixing a very subtle memory leak in the BulkIndexer
. #797
- Fix: ticker memory leak in bulk indexer due to internal flush call resetting the ticker. #797
- Fix: Scroll now uses the body to pass the scroll_id. #785
- Add: generated UnmarshalJSON for Requests to allow injecting payloads using aliases.
- Fix:
put_synonym_rule
was not working due to a type issue in the Elasticsearch API Specification.
The client now requires Golang version 1.20
The client now provides OpenTelemetry integration. This integration can be enabled in the config using the elasticsearch.NewOpenTelemetryInstrumentation
.
Once set up, the provided context
will be used to record spans with useful information about the request being made to the server.
More about what you can expect in the Semantic Conventions for Elasticsearch.
if_seq_no
& if_primary_term
are now supported thanks to @benjyiw #783
SimulateIngest
ConnectorCheckIn
ConnectorDelete
ConnectorGet
ConnectorLastSync
ConnectorList
ConnectorPost
ConnectorPut
ConnectorSyncJobCancel
ConnectorSyncJobCheckIn
ConnectorSyncJobDelete
ConnectorSyncJobError
ConnectorSyncJobGet
ConnectorSyncJobList
ConnectorSyncJobPost
ConnectorSyncJobUpdateStats
ConnectorUpdateConfiguration
ConnectorUpdateError
ConnectorUpdateFiltering
ConnectorUpdateName
ConnectorUpdatePipeline
ConnectorUpdateScheduling
Esql.Query
documentationFleet.PostSecret
Inference
documentationDeleteModel
documentationGetModel
documentationInference
documentationPutModel
documentation
SearchApplication
GetSettings
documentationUpdateSettings
documentation
- Fix #756 preventing from settings indices in
indices.PutSettings
Experimental APIs
EsqlQuery
documentationInferenceDeleteModel
documentationInferenceGetModel
documentationInferenceInference
documentationInferencePutModel
documentation
- Mandatory URL parameters are not exposed as functions anymore as they already exist in the constructor.
Starting from version 8.12.0
, this library follow the Go language policy. Each major Go release is supported until there are two newer major releases. For example, Go 1.5 was supported until the Go 1.7 release, and Go 1.6 was supported until the Go 1.8 release.
If you have any questions or concerns, please do not hesitate to reach out to us.
Update APIs to latest elasticsearch-specification 8.10
Experimental APIs for internal use
FleetDeleteSecret
FleetGetSecret
FleetPostSecret
Exprimental APIs
QueryRulesetList
Stable APIs
Security.GetSettings
Security.UpdateSettings
Exprimental APIs
QueryRuleset.List
Technical Preview
Beta
New API
Cluster.Info
Documentation
Experimental APIs
QueryRulesetGet
DocumentationQueryRulesetDelete
DocumentationQueryRulesetPut
DocumentationSearchApplicationRenderQuery
DocumentationSecurity.CreateCrossClusterAPIKey
DocumentationSecurity.UpdateCrossClusterAPIKey
Documentation
- Propagated request fields towards the endpoint for ease of access, taking priority over same-name query string fields.
- Added a stub for Do methods on endpoints that only support a boolean response such as
core.exists
. - NDJSON endpoints support with custom serialization like
core.bulk
. - Link to endpoints documentation in API index to better display and ease of use.
fixes
- Fixed a deserialization issue for
Property
&Analyzer
#696
- Fixed deserialization for
Suggest
in search responses. - Fixed double-quoted strings in deserialization for unions normalized as string. #684
- Fixed handling of
core.Get
response when the index did not exist. #678
ML.DeleteJob
: AddedWithDeleteUserAnnotations
. Should annotations added by the user be deleted.ML.ResetJob
: AddedWithDeleteUserAnnotations
. Should annotations added by the user be deleted.ML.StartTrainedModelDeployment
: AddedWithPriority
. The deployment priority.TransformGetTransformStats
: AddedWithTimeout
. Controls the time to wait for the stats.TransformStartTransform
: AddedWithFrom
. Restricts the set of transformed entities to those changed after this time.
New APIs
TransformScheduleNowTransform
documentation.
HealthReport
documentation.
- Inclusion of responses structures.
Changes
Do
method on endpoints now return a typed response, one per endpoint.Perform
method added on endpoints, returnshttp.Response
as didDo
.- Elasticsearch exceptions are now handled as
types.ElasticsearchError
with.As
and.Is
methods. .Raw
now takes a reader as input.- User defined values such as
_source
inHits
are nowjson.RawMessage
to highlight they later deserializable nature.
ML.StartTrainedModelDeployment
: AddedWithPriority
New APIs
ML.UpdateTrainedModelDeployment
: Updates certain properties of trained model deployment.
BulkIndexer
Improvements were made to the BulkIndexer memory usage to allow better handling under burst use cases. Thanks to @christos68k and @rockdaboot !
ML.StartTrainedModelDeployment
: Description ofNumberOfAllocations
has been changed in "The total number of allocations this model is assigned across machine learning nodes".Security.GetAPIKey
: AddedWithLimitedBy
boolean parameter. Flag to show the limited-by role descriptors of API Keys.Security.GetUser
: AddedWithProfileUID
boolean parameter. Flag to retrieve profile uid (if exists) associated to the user.Security.GetUserProfile
: Changed the description of uid parameter, a comma-separated list of unique identifier for user profiles.Security.QueryAPIKeys
: AddedWithLimitedBy
boolean parameter. Flag to show the limited-by role descriptors of API Keys.TextStructureFindStructure
: AddedEcsCompatibility
string parameter. Optional parameter to specify the compatibility mode with ECS Grok patterns - may be either 'v1' or 'disabled'.
Promoted to stable
ML.InferTrainedModel
ML.PutTrainedModelDefinitionPart
ML.PutTrainedModelVocabulary
ML.StartTrainedModelDeployment
ML.StopTrainedModelDeployment
Security.activateUserProfile
Security.DisableUserProfile
Security.EnableUserProfile
Security.GetUserProfile
Security.HasPrivilegesUserProfile
Security.SuggestUserProfiles
Security.UpdateUserProfileData
New APIs
ML.ClearTrainedModelDeploymentCache
documentation.Security.BulkUpdateAPIKeys
documentation.Indices.Downsample
(Experimental API) documentation
Following multiple feedbacks we decided to remove the builder API for the type tree.
In its place, work has started to further simplify the type tree by removing redundant type aliases. The API also now comes with a helper package named some
that allows to call for inline pointers on primitive types.
In addition, a bug was fixed preventing the use of wildcards in index names, and enums are now extensible by default.
The Typed API remains in alpha
stage while its development continues.
get
,mget
andsearch
addedforce_synthetic_source
: Should this request force synthetic _source? Use this to test if the mapping supports synthetic _source and to get a sense of the worst case performance. Fetches with this enabled will be slower the enabling synthetic source natively in the index.ML.StartTrainedModelDeployment
addedcache_size
: A byte-size value for configuring the inference cache size. For example, 20mb.Snapshot.Get
addedsort
,size
,order
,from_sort_value
,after
,offset
andslm_policy_filter
. More on these in the documentation.
New API
Security.UpdateAPIKey
documentation.
As highlighted in the release not for the 8.4.0-alpha.1, this release marks the beginning of the newly arrived TypedClient
.
This new API is still in alpha
stage and will be release alongside the existing esapi
.
A few examples of standard use-cases can be found in the TypedAPI section of the documentation.
This second prerelease of the 8.4.0 updates the API for the client and fixes the serialization for types using additional properties.
This prerelease introduces a new typed API generated from the elasticsearch-specification. This generation from the common specification allows us to provide a complete API which uses an exhaustive hierarchy of types reflecting the possibilities given by Elasticsearch.
This new API is the next iteration of the Go client for Elasticsearch, it now lives alongside the existing API, it is in alpha
state and will gain features over time and releases.
The TypedClient
is built around a fluent builder for easier request creation and a collection of structures and helpers that mimics as closely as possible the Elasticsearch JSON API.
As a first example, here is a search request:
cfg := elasticsearch.Config{
// Define your configuration
}
es, _ := elasticsearch.NewTypedClient(cfg)
res, err := es.Search().
Index("index_name").
Request(&search.Request{
Query: &types.QueryContainer{
Match: map[types.Field]types.MatchQuery{
"name": {Query: "Foo"},
},
},
},
).Do(context.Background())
The Request
uses the structures found in the typedapi/types
package which will lead you along the possibilities. A builder for each structure that allows easier access and declaration is also provided.
More on the specifics and a few examples of standard use-cases can be found in the TypedAPI section of the documentation.
While most of the endpoints are covered, a few points are still being worked on and will be part of future releases:
- NDJSON endpoints:
bulk
,msearch
,msearch_template
,ML.post_data
,find_structure
, to name a few. - Response and Errors structures with deserialization.
While being different, the new API uses all the existing layers that were built so far, elastic-transport-go
remains the preferred transport and all your configuration and credentials applies, same as before.
Feedback is very welcome, play with it, use it, let us know what you think!
ML.InferTrainedModelDeployment
renamed toInferTrainedModel
ML.PreviewDatafeed
has two new parameters,start
andend
. DocumentationML.StartTrainedModelDeployment
has three new parameters,number_of_allocations
,threads_per_allocation
andqueue_capacity
. DocumentationCluster.DeleteVotingConfigExclusions
has a newmaster_timeout
parameter.Cluster.PostVotingConfigExclusions
has a newmaster_timeout
parameter.Snapshot.Get
has a newindex_names
parameters (boolean). Whether to include the name of each index in the snapshot. Defaults to true.
New APIs
Security.HasPrivilegesUserProfile
(Experimental API) Documentation
- Fixed a serialisation error for
retry_on_conflict
in the BulkIndexer. Thanks to @lpflpf for the help! - Fixed a concurrent map error in the BulkIndexer when custom headers are applied. Thanks to @chzhuo for the contribution!
New APIs
-
Cat.ComponentTemplates
-
ML.GetMemoryStats
documentation -
Security.activateUserProfile
(Experimental API) Documentation -
Security.disableUserProfile
(Experimental API) Documentation -
Security.enableUserProfile
(Experimental API) Documentation -
Security.getUserProfile
(Experimental API) Documentation -
Security.suggestUserProfiles
(Experimental API) Documentation -
Security.updateUserProfileData
(Experimental API) Documentation
- API is generated from the Elasticsearch 8.1.0 specification.
New parameters
WithWaitForCompletion
forIndices.Forcemerge
WithFeatures
forIndices.Get
WithForce
forML.DeleteTrainedModel
New APIs
OidcAuthenticate
,OidcLogout
andOidcPrepareAuthentication
see documentationTransformResetTransform
- The client now uses
elastic-transport-go
dependency which lives in its own repository. - With the knewly extracted transport, the
retryOnTimeout
has been replaced with aretryOnError
callback. This allows to select more finely which error should be retried by the client. BulkIndexerItem
Body
field is now anio.ReadSeeker
allowing reread without increasing memory consumption.BulkIndexerItem
know correctly uses therouting
property instead of the deprecated_routing
.
- API is generated from the Elasticsearch 8.0.0 specification.