版本发布 8
### Enhancements * Add `pack_dense_vector` helper function to pack dense vectors for efficient uploading ([#3219](https://github.com/elastic/elasticsearch-py/pull/3219)) * New and updated ES|QL functions in the ES|QL query builder for 9.3 and Serverless ([#3266](https://github.com/elastic/elasticsearch-py/pull/3266)) ### API * Added `cat.circuit_breaker` API * Added experimental `esql.get_view`, `esql.put_view` and `esql.delete_view` APIs * Added experimental `indices.get_sample_configuration`, `indices.put_sample_configuration`, `indices.delete_sample_configuration`, `indices.get_all_sample_configuration`, `indices.get_sample`, `indices.get_sample_stats` APIs * Added `inference.put_groq`, `inference.put_openshift_ai`, `inference.put_nvidia` APIs * Added `downsampling_method` argument to `indices.put_data_lifecycle` API * Added `return_documents` and `top_n` arguments to `inference.rerank` API * Added `close_job` argument to `ml.stop_datafeed` API * Added `certificate_identity` to `security.create_cross_cluster_api_key` and `security.update_cross_cluster_api_key` APIs ### Serverless-specific * Added `project_routing` argument to `project.tags` API ### DSL * Added `NumpyDenseVector` field, with support for dense vectors based on numpy arrays ([#3218](https://github.com/elastic/elasticsearch-py/pull/3218)) * Added `ExponentialHistogram` field * Added `time_series_metric` argument to `Histogram` field * Added `on_disk_rescore` argument from `DenseVectorIndexOptions` type * Added `slices` argument to `UpdateByQueryResponse` type
## Enhancements * Instrument ping with OTel ([#3160](https://github.com/elastic/elasticsearch-py/pull/3160)) * Make positional arguments in DSL generated classes explicit ([#3233](https://github.com/elastic/elasticsearch-py/pull/3233)) * Add warnings for private APIs ([#3212](https://github.com/elastic/elasticsearch-py/pull/3212)) ## Bug fixes * ES|QL query builder: fix missing assignment ([#3151](https://github.com/elastic/elasticsearch-py/pull/3151)) * Use relative imports to fix `elasticsearch9` package imports ([#3232](https://github.com/elastic/elasticsearch-py/pull/3232)) ## API * Added `transform.get_node_stats` API * Added `requests_per_second` argument to `delete_by_query_rethrottle`, `reindex_rethrottle` and `update_by_query_rethrottle` APIs * Added `allow_closed`, `allow_no_indices`, `expand_wildcards`, `ignore_throttled` and `ignore_available` arguments to `cat.segments` API * Added `chunking_settings` argument to `inference.put_watsonxai` API * Added `id` argument to `ml.stop_trained_model_deployment` API * Removed `chunking_settings` argument from `inference.put_anthropic`, `inference.put_contextualai`, `inference.put_deepseek` APIs ## DSL * Removed `on_disk_score` argument from `DenseVectorIndexOptions` type
### Enhancements * Add `flush_after_seconds` option to `streaming_bulk()` ([#3064](https://github.com/elastic/elasticsearch-py/pull/3064)) ### Bug Fixes * DSL: support passing inner documents as `AttrDict` instances ([#3080](https://github.com/elastic/elasticsearch-py/pull/3080)) * DSL: add some recently added field classes as top-level exports for the package ([#3078](https://github.com/elastic/elasticsearch-py/pull/3078)) ### API - Add `streams` namespace with `streams.logs_disable`, `streams.logs_enable`, `streams.status` APIs - Add `indices.get_data_stream_settings` API - Add `indices.put_data_stream_settings` API - Add `bytes` and `time` parameters to various APIs in the `cat` namespace. - Add `index_template` parameter to `indices.simulate_index_template` API - Add `input_type` parameter to `inference.text_embedding` API - Removed unsupported `size` parameter from `reindex` API ### DSL - New `CartesianBounds`, `CartesianCentroid`, `ChangePoint` aggregations - Add `p_value` parameter to `SignificantTerms` aggregation - Add `fields` parameter to `SemanticText` field ### Other * Add 3.14 to CI builds ([#3103](https://github.com/elastic/elasticsearch-py/pull/3103))
## Enhancements and Fixes * ES|QL query builder integration with the DSL module ([#3058](https://github.com/elastic/elasticsearch-py/pull/3058)) * ES|QL query builder robustness fixes ([#3017](https://github.com/elastic/elasticsearch-py/pull/3017)) * Fix ES|QL `multi_match()` signature ([#3052](https://github.com/elastic/elasticsearch-py/pull/3052)) ## API * Add support for ES|QL query builder objects to ES|QL Query and Async Query APIs * Add Transform Set Upgrade Mode API * Fix type of `fields` parameter of Term Vectors API to array of strings * Fix type of `params` parameter of SQL Query API to array ## DSL * Preserve the `skip_empty` setting in `to_dict()` recursive serializations ([#3041](https://github.com/elastic/elasticsearch-py/pull/3041)) * Add `separator_group` and `separators` attributes to `ChunkingSettings` type * Add `primary` attribute to `ShardFailure` type * Fix type of `key` attribute of `ArrayPercentilesItem` to float
Enhancements * ES|QL query builder (technical preview) ([#2997](https://github.com/elastic/elasticsearch-py/pull/2997)) * Add option to disable accurate reporting of file and line location in warnings (Fixes #3003) ([#3006](https://github.com/elastic/elasticsearch-py/pull/3006)) APIs * Remove `if_primary_term`, `if_seq_no` and `op_type` from Create API * Remove `stored_fields` from Get Source API * Remove `master_timeout` from Ingest Get Ip Location Database API * Remove `application`, `priviledge` and `username` from the Security Get User API * Rename `type_query_string` to `type` in License Post Start Trial API * Add `require_data_stream` to Index API * Add `settings_filter` to Cluster Get Component Template API * Add `cause` to Cluster Put Component Template API * Add `ccs_minimize_roundtrips` to EQL Search API * Add `keep_alive` and `keep_on_completion` to ES|QL Async Query API * Add `format` to ES|QL Async Query Get API * Add `allow_no_indices`, `expand_wildcards` and `ignore_available` to Indices Recovery API * Add `timeout` to all Inference Put APIs * Add `refresh` to Security Get User Profile API * Add `wait_for_completion` to the Snapshot Delete API DSL * Handle lists in `copy_to` field option correctly (Fixes #2992) ([#2993](https://github.com/elastic/elasticsearch-py/pull/2993)) * Add `key` to FiltersBucket type
## Enhancements * ES|QL query builder (technical preview) ([#2997](https://github.com/elastic/elasticsearch-py/pull/2997)) * Update OpenTelemetry conventions ([#2999](https://github.com/elastic/elasticsearch-py/pull/2999)) * Add option to disable accurate reporting of file and line location in warnings (Fixes #3003) ([#3006](https://github.com/elastic/elasticsearch-py/pull/3006)) ## APIs * Remove `if_primary_term`, `if_seq_no` and `op_type` from Create API * Remove `master_timeout` from Ingest Get Ip Location Database API * Remove `application`, `priviledge` and `username` from the Security Get User API * Rename `type_query_string` to `type` in License Post Start Trial API * Add `require_data_stream` to Index API * Add `settings_filter` to Cluster Get Component Template API * Add `cause` to Cluster Put Component Template API * Add `master_timeout` to Cluster State API * Add `ccs_minimize_roundtrips` to EQL Search API * Add `keep_alive` and `keep_on_completion` to ES|QL Async Query API * Add `format` to ES|QL Async Query Get API * Add ES|QL Get Query and List Queries APIs * Add Indices Delete Data Stream Options API * Add Indices Get Data Stream Options and Put Data Stream Options APIS * Add Indices Get Data Stream Settings and Put Data Stream Settings APIs * Add `allow_no_indices`, `expand_wildcards` and `ignore_available` to Indices Recovery API * Add Indices Remove Block API * Add Amazon Sagemaker to Inference API * Add `input_type` to Inference API * Add `timeout` to all Inference Put APIs * Add Inference Put Custom API * Add Inference Put DeepSeek API * Add `task_settings` to Put HuggingFace API * Add `refresh` to Security Grant API Key API * Add `wait_for_completion` to the Snapshot Delete API * Add `state` to Snapshot Get API * Add `refresh` to Synonyms Put Synonym, Put Synonym Rule and Delete Synonym Rule APIs ## DSL * Handle lists in `copy_to` option in DSL field declarations correctly (Fixes #2992) ([#2993](https://github.com/elastic/elasticsearch-py/pull/2993)) * Add `index_options` to SparseVector type * Add SparseVectorIndexOptions type * Add `key` to FiltersBucket type ## Other changes * Drop support for Python 3.8 ([#3001](https://github.com/elastic/elasticsearch-py/pull/3001))
DSL * Add `rescore_vector` to `DenseVectorIndexOptions`
* Update APIs * Add back `inference.inference` APIs that were removed by mistake * Update DSL * Add `CountedKeyword` and `Passthrough` fields * Add `rescore_vector` to Knn query * Add `bbq_flat` and `bbq_hnsw` vector index types * Add `script` and `on_script_error` to `Date` and `DateNanos` fields