- Fixed issue with psr/http-message, changed PSR-7 versions to 1.1 and 2.0 #1344
- Added 12 new APIs: 11 EXPERIMENTAL and 1 stable:
Cluster.info
(new API)QueryRuleset.delete
(new EXPERIMENTAL API)QueryRuleset.get
(new EXPERIMENTAL API)QueryRuleset.put
(new EXPERIMENTAL API)SearchApplication.renderQuery
(new EXPERIMENTAL API)Security.createCrossClusterApiKey
(new EXPERIMENTAL API)Security.updateCrossClusterApiKey
(new EXPERIMENTAL API)SynonymRule.put
(new EXPERIMENTAL API)Synonyms.delete
(new EXPERIMENTAL API)Synonyms.get
(new EXPERIMENTAL API)Synonyms.put
(new EXPERIMENTAL API)SynonymsSets.get
(new EXPERIMENTAL API)
- Added SearchHitIterators and SearchResponseIterator helpers revised with new version #1302
- Added 15 new APIs: 13 EXPERIMENTAL and 2 stable:
Indices.deleteDataLifecycle
(new EXPERIMENTAL API)Indices.explainDataLifecycle
(new EXPERIMENTAL API)Indices.getDataLifecycle
(new EXPERIMENTAL API)Indices.putDataLifecycle
(new EXPERIMENTAL API)SearchApplication.delete
(new EXPERIMENTAL API)SearchApplication.deleteBehavioralAnalytics
(new EXPERIMENTAL API)SearchApplication.get
(new EXPERIMENTAL API)SearchApplication.getBehavioralAnalytics
(new EXPERIMENTAL API)SearchApplication.list
(new EXPERIMENTAL API)SearchApplication.postBehavioralAnalyticsEvent
(new EXPERIMENTAL API)SearchApplication.put
(new EXPERIMENTAL API)SearchApplication.putBehavioralAnalytics
(new EXPERIMENTAL API)SearchApplication.search
(new EXPERIMENTAL API)Watcher.getSettings
(new API)Watcher.updateSettings
(new API)
- ES 8.8.0 updates some API:
search
: Added theinclude_named_queries_score
boolean parameter. Indicates whether hit.matched_queries should be rendered as a map that includes the name of the matched query associated with its score (true) or as an array containing the name of the matched queries (false)Cluster.getComponentTemplate
: Addedinclude_defaults
boolean parameters. Return all default configurations for the component template (default: false)Indices.getDataStream
: Addedinclude_defaults
boolean parameter. Return all relevant default configurations for the data stream (default: false)Indices.getIndexTemplate
: Addedinclude_defaults
boolean parameter. Return all relevant default configurations for the index template (default: false)Indices.simulateIndexTemplate
: Addedinclude_defaults
boolean parameter. Return all relevant default configurations for this index template simulation (default: false)Indices.simulateTemplate
: Addedinclude_defaults
boolean parameter. Return all relevant default configurations for this template simulation (default: false)Logstash.getPipeline
: Makeid
parameter optional.Ml.putTrainedModel
: Addedwait_for_completion
boolean parameter. Whether to wait for all child operations (e.g. model download) to complete, before returning or not. Default to falseMl.startTrainedModelDeployment
: Addeddeployment_id
string parameter. The Id of the new deployment. Defaults to the model_id if not set.Transform.deleteTransform
: Addeddelete_dest_index
boolean parameter. Whentrue
, the destination index is deleted together with the transform. The default value isfalse
, meaning that the destination index will not be deleted.
- Added 2 new endpoints:
- healthReport, documentation here
- Transform.scheduleNowTransform, documentation here
- Added the
delete_user_annotations
boolean parameter inMl.deleteJob
. Should annotations added by the user be deleted - Added the
delete_user_annotations
boolean parameter inMl.resetJob
. Should annotations added by the user be deleted - Added the
timeout
time parameter inTransform.getTransformStats
. Controls the time to wait for the stats - Added the
from
string parameter inTransform.startTransform
. Restricts the set of transformed entities to those changed after this time - Allow plugin for
php-http/discovery
library #1294
- Added a new endpoint Ml.updateTrainedModelDeployment, documentation here
- Added the
priority
string parameter forMl.startTrainedModelDeployment
. The deployment priority.
- Added 2 new endpoints:
- Ml.clearTrainedModelDeploymentCache, documentation [here](https://www.elastic.co/guide/en/ elasticsearch/reference/master/clear-trained-model-deployment-cache.html)
- Security.bulkUpdateApiKeys, documentation here
- Added 1 new experimental endpoint:
- Indices.downsample, documentation here
- Added the
with_limited_by
boolean parameter in the endpointSecurity.getApiKey
. Flag to show the limited-by role descriptors of API Keys. - Added the
with_profile_uid
boolean parameter in the endpointSecurity.getUser
. Flag to retrieve profile uid (if exists) associated to the user. - Changed the description of
uid
parameter in the endpointSecurity.getUserProfile
. A comma-separated list of unique identifier for user profiles. - Added the
with_limited_by
boolean parameter in the endpointSecurity.queryApiKeys
. Flag to show the limited-by role descriptors of API Keys. - Added the
ecs_compatibility
string parameter in the endpointTextStructure.findStructure
. Optional parameter to specify the compatibility mode with ECS Grok patterns - may be either 'v1' or 'disabled'.
- Added a
ClientInterface
to simplify the mock of the Client, this is a fix for #1227 #1249 - Added the support of Symfony HTTP client, fixing the issue #1241 #1243
- Added the API compatibility header #1233
- Updated APIs for Elasticsearch 8.4 7815caa
- Updated APIs for Elasticsearch 8.3 fb117a8
- Updated APIs for Elasticsearch 8.2 630cb0b
- Added the array support for
text/plain
#1220
- Updated APIs for Elasticsearch 8.1 e4c2ac9
- Fixed
NoNodeAvailableException
exception in endpoints e7d448d
- Finally released 8.0.0 GA.
- Added the common parameters in all the endpoints 6427f8c
- Fixed query string in API endpoints + added a first integration test e404235
- Added AdapterOptions class and setNodePool() in ClientBuilder 9150f71
- Fixed urlencode in params, Exception in test code generation 142327b
- Improved client/server response exception messages 50de3e6
First alpha release of elasticsearch-php 8.0.0.
This major release is a complete new PHP client for Elasticsearch. We build it from scratch! We tried to reduce the BC breaks as much as possible but there are some (big) differences:
- we changed the namespace, now everything is under
Elastic\Elasticsearch
- we used the elastic-transport-php library for HTTP communications;
- we changed the
Exception
model, using the namespaceElastic\Elasticsearch\Exception
. All the exceptions extends theElasticsearchException
interface, as in 7.x - we changed the response type of each endpoints using an Elasticsearch response class. This class wraps a a PSR-7 response allowing the access of the body response as array or object. This means you can access the API response as in 7.x, no BC break here! 👼
- we changed the
ConnectionPool
inNodePool
. Theconnection
naming was ambigous since the objects are nodes (hosts)
You can have a look at the BREAKING_CHANGES file for more information.
- Allow psr/log v3 #1184
- Added support of includePortInHostHeader in ClientBuilder::fromConfig #1181
- Fixed UTF-16 issue in SmartSerializer with single unpaired surrogate in unicode escape #1179
- Replace trait with abstract class to avoid Deprecated Functionality issue in PHP 8.1 #1175
- Updated endpoints for Elasticsearch 7.15.0 995f6d4
- Usage of psr/log version 2 #1154
- Update search iterators to send
scroll_id
inside the request body #1134 - Added the
ingest.geoip.downloader.enabled=false
setting for ES 5867351 - Removed phpcs for autogenerated files (endpoints) 651c57b
- Added port in url for trace and logger messages #1126
- (DOCS) Added the HTTP meta data section #1143
- Added support for API Compatibility Header #1142
- (DOCS) Added Helpers section to PHP book #1129
- Added the API description in phpdoc section for each endpoint 9e05c81
- Usage of PHPUnit 9 only + migrated xml configurations 038b5dd
- Updated the endpoints for ES 7.12 + removed cpliakas/git-wrapper in favor of symplify/git-wrapper 136d5b9
- Fixed warning header as array in YAML tests generator 0d81be1
- Refactored TEST_SUITE with free, platinum + removed old YamlRunnerTest f69d96f
- Added the
X-Elastic-Client-Meta
header which is used by Elastic Cloud and can be disabled withClientBuilder::setElasticMetaHeader(false)
#1089 - Replaced
array_walk
witharray_map
inConnection::getURI
for PHP 8 compatibility #1075 - Remove unnecessary
InvalidArgumentExceptions
#1069 - Introducing PHP 8 compatibility #1063
- Replace Sami by Doctum and fix
.gitignore
#1062
- Updated endpoints and namespaces for Elasticsearch 7.10 3ceb748
- Fixed ClientBuilder::fromConfig allowing multiple function parameters (e.g. setApiKey) #1076
- Refactored the YAML tests using generated PHPUnit code 85fadc2
- Fixed using object instead of array in onFailure transport event #1066
- Fixed reset custom header after endpoint call #1065
- Show generic error messages when server returns no response #1056
- Updated endpoints and namespaces for Elasticsearch 7.9 28bf0ed
- Moved
scroll_id
intobody
for search operations in the documentation #1052 - Fixed PHP 7.4 preloading feature for autoload.php #1051
- Improved message of JSON errors using
json_last_error_msg()
#1045
- Updated endpoints and namespaces for Elasticsearch 7.8 f2a0828
- Improved documentation #1038 #1027 #1025
- Removed setId() into endpoints, fixed
util/GenerateEndpoints.php
#1026 - Fixes JsonErrorException with code instead of message #1022
- Better exception message for Could not parse URI #1016
- Added JUnit log for PHPUnit 88b7e1c
- Added the XPack endpoints 763d91a
- Fixed issue with
guzzlehttp/ringphp
andguzzle/streams
using forksezimuel/ringphp
andezimuel/guzzlestreams
92a6a4a
- Generated the new endpoints for Elasticsearch 7.6.0 be31f31
- Fixes port missing in log #925 75e0888
- Added
ClientBuilder::includePortInHostHeader()
to add theport
in theHost
header. This fixes #993. By default theport
is not included in theHost
header. #997 - Replace abandoned packages: ringphp, streams and phpstan-shim #996
- Fixed gzip compression when setting Cloud Id #986
- Fixed
Client::extractArgument
iterable casting to array; this allows passing aTraversable
body for some endpoints (e.g. Bulk, Msearch, MsearchTemplate) #983 - Fixed the Response Exception if the
reason
field is null #980 - Added support for PHP 7.4 #976
- We added the suppress operator
@
for the deprecation messages@trigger_error()
. With this approach we don't break existing application that convert PHP errors in Exception (e.g. using Laravel with issue https://github.com/babenkoivan/scout-elasticsearch-driver/issues/297) Using the@
operator is still possible to intercept the deprecation message using a custom error handler. #973 - Add missing leading slash in the URL of put mapping endpoint #970
- Fix pre 7.2 endpoint class name with aliases + reapply fix #947. This PR solved the unexpected BC break introduce in 7.4.0 with the code generation tool #968
- Added the code generation for endpoints and namespaces based on
the REST API specification
of Elasticsearch. This tool is available in
util/GenerateEndpoints.php
. #966 - Fixed the asciidoc endpoints documentation based on the code generation using Sami project #966
- All the
experimental
andbeta
APIs are now signed with a@note
tag in the phpdoc section (e.g. $client->rankEval()). For more information read the experimental and beta APIs section in the documentation. #966 - Removed
AlreadyExpiredException
since it has been removed from Elasticsearch with elastic/elasticsearch#24857 #954
- Added support for simplified access to the
X-Opaque-Id
header #952 - Added the HTTP port in the log messages #950
- Fixed hostname with underscore (ClientBuilder::prependMissingScheme) #949
- Removed unused Monolog in ClientBuilder #948
- Reintroduced the optional parameter in
Elasticsearch\Namespaces\IndicesNamespace::getAliases()
. This fixes the BC break introduced in 7.2.0 and 7.2.1. #947
- Reintroduced
Elasticsearch\Namespaces\IndicesNamespace::getAliases()
as proxy toIndicesNamespace::getAlias()
to prevent BC breaks. ThegetAliases()
is marked as deprecated and it will be removed fromelasticsearch-php 8.0
#943
- Fixed missing put mapping code snippet in code examples #938
- Updated the API endpoints for working with Elasticsearch 7.2.0:
- added
wait_for_active_shards
parameter toindices.close
API; - added
expand_wildcards
parameter tocluster.health
API; - added include_unloaded_segments
,
expand_wildcards,
forbid_closed_indicesparameters to
indices.stats` API. [27d721b]
- added
- Updated the phpdoc parameters for all the API endpoints [27d721b]
- Improved the Travis CI speed using cache feature with composer #929
- Fixed
php_uname()
usage checking if it is disabled #927 - Added support of Elastic Cloud ID and API key authentication #923
- Fixed
ClientBuilder::setSSLVerification()
to accept string or boolean #917 - Fix type hinting for
setBody
inElasticsearch\Endpoints\Ingest\Pipeline\Put
#913
- Added warning log for Elasticsearch response containing the
Warning
header #911 - Fixed #838 hosting company is blocking ports because of
YamlRunnerTest.php
#844 - Specialized inheritance of
NoNodesAvailableException
to extendServerErrorResponseException
instead of the generic\Exception
#607 - Fixed scroll TTL is extracted but not set as a body param #907
- Improved the speed of integration tests removing snapshots delete from
YamlRunnerTest::clean
#911 - Reduced the number of skipping YAML integration tests from 20 to 6 #911
- Documentation updated for Elasticsearch 7 #904
- Fixed incorrect return type hint when using async requests/futures #905
- Fixed SniffingConnectionPool removing the return type of Connection::sniff() #899
- Requirement of PHP 7.1 instead of 7.0 that is not supported since 1 Jan 2019. #897
- Code refactoring using type hints and return type declarations where possible #897
- Update vendor libraries (PHPUnit 7.5, Symfony YAML 4.3, etc) #897
- Updated all the API endpoints using the latest 7.0.0 specs of Elasticsearch #897
- Added the
User-Agent
in each HTTP request #898 - Simplified the logging methods
logRequestFail($request, $response, $exception)
andlogRequestSuccess($request, $response)
inElasticsearch\Connections\Connection
#876 - Fix
json_encode
for unicode(emoji) characters 856 - Fix HTTP port specification using CURLOPT_PORT, not anymore in the host 782
- Added
track_total_hits
insearch
endpoint 0c9ff47
- Removed requirement of
{type}
part inindices.put_mapping
, see new API specification here - Added
seq_no_primary_term
parameter inbulk
endpoint #884 - Added
include_type_name
,if_primary_term
,if_seq_no
indelete
endpoint #884 - Added
include_type_name
inget
,index
,indices.create
,indices.field.get
,indices.get
,indices.mapping.get
,indices.mapping.getfield
,indices.mapping.put
,indices.rollover
,indices.template.get
,indices.template.put
endpoints #884 - Added
seq_no_primary_term
insearch
endpoint #884 - Added
if_primary_term', 'if_seq_no
inupdate
endpoint #884
- Fix tests for PHP 7 with ES 6.7 [5401479
- [DOCS] Fix doc links in README [5a1782d]
- Remove
_suggest
endpoint, which has disappeared from ES6 #763 - Fix
SearchHitIterator
key duplicates #872 - Fixing script get and delete by removing
lang
from endpoint url #814 - Fix
SearchResponseIterator
is scrolling the first page twice #871, issue #595
- [DOCS] Add reference to
parse_url()
for Extended Host Configuration #778 - [DOCS] Update php version requirement #757
- [DOCS] Update
community.asciidoc
, addedElasticSearchQueryDSL
project #749 - [DOCS] Proper return type array for get method for
IndicesNamespace
#651 - [DOCS] Fix full docs link #862
- [DOCS] Update breaking-changes.asciidoc, removal of ClientBuilder::defaultLogger() 879
- Fix integration tests using docker #867
- Add 'wait_for_no_initializing_shards' to Cluster\Health whitelist [98a372c]
- Add 'wait_for_active_shards' to Indices\Open whitelist [0275fe5]
- Add 'max_concurrent_searches' to msearch whitelist [5624123]
- Add 'max_concurrent_shard_requests' param to MSearch endpoint [00800c1]
- Add ReloadSecureSettings endpoint [75b32b2]
- Remove obsolete Shutdown API [c75d690]
- Fix: Restore::setBody() does not throw exceptions (#828) [a96bb9c]
- Fixed php 7.3 compatibility for elasticsearch 6 (#827) [77916b2]
- Fix issue with getting status of respository and snapshots. (#719) [2d11682]
- fix DeleteByQuery param white list (#748) [8d963c6]
- [Docs] Update elasticsearch version (#743) [043ad4f]
- [DOCS] reuqest → request typo fix (#728) [68db9f0]
- [DOCS] Fix documentation example of upsert (#730) [805329b]
- [DOCS] Replace deprecated string type with keyword type for index operations (#736) [a550507]
- [TEST] Fix travis untarring [0106351]
- [TEST] Download artifacts directly, migrate off esvm [1e9f06c]
- Update Travis Matrix [aa32b12]
- [TEST] Fix teardown in yaml runner [098030e]
- Add Indices/Split endpoint [46d5a7a]
- [TEST] Blacklist some bad yml tests [d5edab7]
- Fix imports [0106351]
- ClientBuilder: setLogger() and setTracer() only accept \Psr\Log\LoggerInterface (#673) [0270c4f]
- fix for invalid GET /_aliases route. (#663) [6d467fa]
- Remove PutTemplate endpoint, lang param of PutScript no longer used [a13544f]
Note: I'm considering PutTemplate removal a bugfix, since the API doesn't exist in ES Core anymore. Using the endpoint throws an error,
so the removal is just fixing an existing bug, hence
6.0.1
instead of6.1.0
- [DOCS] Add note about separate X-Pack library to README (#694) [6ffdef8]
- [DOCS] add link to community index helper (#681) [644f7f7]
- [DOCS] Add missing content for breaking changes page [5a515ac]
- [DOCS] update autogenerated api docs [7f2cd0b]
- [DOCS] Update version tables [b824bb7]
- Add Ingest\ProcessorGrok endpoint [800b1ec]
- Add Cluster\RemoteInfo endoint [dfd8c3c]
- Add Unauthorized401Exception [cc68efd]
- Add verify as acceptable query string parameter for createRepository (#665) [885bfea]
- Fix parsing of NodesInfo for Sniffing [e22f67f]
- Do not schedule connection pool checks on 4xx level errors [fd75e99]
- Add 'terminate_after' to Count endpoint whitelist (#634) [c3cacd7]
- [DOCS] Flip Branch / PHP Version table (#656) [fa7bfb3]
- [TEST] use proper TestCase parent clsas [766b440]
- [TEST] add PHPStan to build (#628) [946cd65]
- [TEST] Fix some PHPCS violations in tests [18a38dd]
- [src] add PHP_CodeSniffer (#647) [24900ef]
- [TEST] add PHP_CodeSniffer to build (#638) [088a509]
- [TEST] Use tests from corresponding ES version (#649) [75c6680]
- [TEST] Add support for
bad_request
in yaml runner [ad86f91] - [TEST]
max_compilations_per_minute
is nowmax_compilations_rate
[ebdba06] - [TEST] print elasticsearch.log if cluster fails to start [fe796aa]
- [TEST] move integration test to dedicated test file [71ccfc1]
- [TEST] Client does not support accepting Yaml format responses [fc9a9f9]
Woo!
- Use upper-case "Host" header [045aac4]
- Add 'allow_no_indices' param to Indices\Delete whitelist [3a3a5ab]
- Add 'verbose' param to Snapshot\Get whitelist [b70b933]
- Add 'pre_filter_shard_size' param to Search whitelist [f708d9d]
- Add 'ignore_unavailable' param to Indices\Delete whitelist [8133021]
- Add 'include_defaults' param to Cluster\Settings\Get whitelist [8e5ab38]
- [DOCS] Remove Sami from composer.json and update docs (#619) [fcd5ff1]
- [Docs] recommend composer/ca-bundle instead of Kdyby/CurlCaBundle (#613) [7f43b2e]
- [TEST] Fix content-type assertions in test to match case [5b37117]
- Capitalize 'Content-Type' for maximum compatibility [b8ad96c]
- [TEST] Use percentage watermarks to be compatible with default flood [95d2f89]
- [TEST] remove watermark flood from static config [9b71940]
- Shrink API was not setting body correctly [e0f0985]
- [TEST] Add some missing and required static configs [38febbe]
- [TEST] Allow skipping individual tests inside of test file [51b9b9b]
- Travis: add PHP 7.2 + ES 6.0 to build matrix (#622) [061f100]
- [TEST] tests code cleanup (#618) [dc5d18c]
- [TEST] Fix RoundRobinSelector Tests (#617) [23a0ba8]
- [TEST] skip new percentile tests for now [b5d9613]
- [TEST] drop HHVM from build [#611] (#616) [21a2d24]
- [TEST] Skip cat.aliases/20_headers.yml [c83ca74]
- [TEST] YamlRunnerTest should run both .yml and .yaml files [98c2646]
- [TEST] build against ES 6 on Travis [b5886a8]
- [TEST] drop HHVM from build [#611] [0a7b402]
- [TEST] test tweaks to appease stricter types [51f189e]
- Fix ClientBuilder - pass correct argument for Elasticsearch\Endpoints\MsearchTemplate::__construct. (#605) [5f83b52]
- [TEST] improve code quality of tests (#610) [9ea2156]
- [TEST] Support headers in yaml runner, do some bad-comment cleaning [57b5489]
- [TEST] fix handling of format for Cat tests [a24b7d1]
- [TEST] test files are now .yml instead of .yaml [ceac5bd]