ruflin/elastica
Elasticsearch Client
9.0.0
54M downloads/mo
#856 most downloaded on Packagist
ruflin/Elastica
What this package is like to depend on
Last release 10 months ago
01 Oct 2025
Release timing varies
gaps range from 8 days to 11 months
Some releases are documented
notes for 39 of 74 stable releases
Nothing withdrawn
no release was ever pulled
14 years old
82 releases · first in 2012
2 releases in the last 12 months
see the full history below
Release timeline
82 releases · Mar 2012 to Oct 2025Releases
latest 60 of 82-
9.0.001 Oct 2025Release notes
Open source →Changelog
Backward Compatibility Breaks
Elastica\IndexTemplatenow works only with new_index_templateAPI. You should useElastica\Templateto use the deprecated API #2274- Dropped support for PHP <8.1 #2246
- Removed 3rd
$methodargument from theElastica\SearchableInterface::searchandElastica\SearchableInterface::countas they are not unused anymore. The following classes are affected:Elastica\SearchandElastica\Index#2256 - Removed
Elastica\Requestclass as constants are not used anymore and no longer needed. #2256
Added
- Added support for Component Template #2274
- Added support for Index Template #2274
- Added Template class to target only legacy Template #2274
- Added support for PHP 8.5 #2253
Changed
Fixed
Elastica\Query\BoolQuery::toArrayno longer changes$this->_paramsto \stdClass when empty #2241- Fixed Client retries configuration to allow zero retries by changing condition from
> 0to>= 0#2278
Auto generated release notes
What's Changed
- [8.x] Fix readme badges by @malberts in #2238
- fix: do not mutate BoolQuery instance in toArray method by @MrkMrk00 in #2241
- Update Ubuntu version for testing to 24.04 by @ruflin in #2243
- Add elasticsearch 9 support by @sidz in #2246
- Add intstructions for Github Copilot by @ruflin in #2248
- Add unit test for Elastica\Query\FunctionScore::DECAY_EXPONENTIAL by @ruflin in #2249
- Upgrade PHPUnit from 9.5 to 10.5 by @sidz in #2251
- Update phpstan to 2.x by @sidz in #2252
- Support PHP 8.5 by @sidz in #2253
- Remove unused method argument in the Elastica\SearchableInterface methods in 9.x by @sidz in #2256
- Add CLAUDE.md file to repository by @ruflin in #2259
- Enhances AI instructions files by @ruflin in #2263
- Fix PHPStan and PHP-CS-Fixer Docker commands and PHP 8.4 compatibility by @ruflin in #2262
- Fix Elasticsearch cluster discovery configuration to ensure green health status by @ruflin in #2266
- Add Claude Code GitHub Workflow by @ruflin in #2264
- Support git worktree inside the repository by @ruflin in #2267
- Fix Makefile command issues to ensure all targets work properly by @ruflin in #2268
- Update default Elasticsearch version by @ruflin in #2270
- Update docker compose files to follow new recommendations, use latest… by @sidz in #2271
- Disable Claude PR reviews for now by @ruflin in #2275
- Add component and legacy Template, update IndexTemplate by @nyroDev in #2274
- [Rector] Apply TypedPropertyFromStrictConstructorRector rule by @sidz in #2272
- Add AGENTS.md to replace other similar files by @ruflin in #2280
- Fix: Allow zero retries in Client configuration by @ruflin in #2282
- Prepare 9.0.0 release by @ruflin in #2288
New Contributors
Full Changelog: 8.1.0...9.0.0
Release notes
Open source →Backward Compatibility Breaks
Elastica\IndexTemplatenow works only with new_index_templateAPI. You should useElastica\Templateto use the deprecated API #2274- Dropped support for PHP <8.1 #2246
- Removed 3rd
$methodargument from theElastica\SearchableInterface::searchandElastica\SearchableInterface::countas they are not unused anymore. The following classes are affected:Elastica\SearchandElastica\Index#2256 - Removed
Elastica\Requestclass as constants are not used anymore and no longer needed. #2256
Added
- Added support for Component Template #2274
- Added support for Index Template #2274
- Added Template class to target only legacy Template #2274
- Added support for PHP 8.5 #2253
Changed
Fixed
-
8.2.023 Sep 2025Release notes
Open source →Added
- Added support for PHP 8.5 #2254
- Added support for Component Template #2257
- Added support for Index Template, using
useLegacy = false#2257 - Added Template class to target only legacy Template #2257
Deprecated
- Deprecated
Elastica\Templatebecause it's deprecated since version 7.8 on ElasticSearch #2257
Fixed
Elastica\Query\BoolQuery::toArrayno longer changes$this->_paramsto \stdClass when empty #2241- Fixed Client retries configuration to allow zero retries by changing condition from
> 0to>= 0#2278
New Contributors
Full Changelog: 8.1.0...8.2.0
-
8.1.029 Nov 2024Release notes
Open source →Added
- Added support for the multi-match query type
bool_prefix#2220 - Added support for PHP 8.4 #2221
- Added support for custom key to IpRange and GeoDistance
addRangeusing a common trait #2227 - Added bucket sort aggregation #2229
Fixed
- Fixed Pipeline Processor handling to allow for multiple processors of the same type #2218
New Contributors
- @McFistyBuns made their first contribution in #2218
- @wolfsblu made their first contribution in #2220
- @gaetan-petit made their first contribution in #2229
Full Changelog: 8.0.0...8.1.0
Release notes
Open source →Added
- Added support for the multi-match query type
bool_prefix#2220 - Added support for PHP 8.4 #2221
- Added support for custom key to IpRange and GeoDistance
addRangeusing a common trait #2227 - Added bucket sort aggregation #2229
Fixed
- Fixed Pipeline Processor handling to allow for multiple processors of the same type #2218
- Added support for the multi-match query type
-
8.0.029 May 2024Release notes
Open source →This is first 8.x GA release for Elastica. It contains a list of breaking changes. Have a look at the Upgrade guide.
8.0.0 is a huge milestone and a big thanks to everyone in the community that made this possible!
Backward Compatibility Breaks
- Dropped support for PHP <8.0 #2131
- Removed deprecated classes in 7.x #2132
Elastica\Exception\ElasticsearchException-> useElastica\Exception\ResponseException::getResponse()::getFullError()insteadElastica\Exception\ResponseException::getElasticsearchException()-> useElastica\Exception\ResponseException::getResponse()::getFullError()insteadElastica\Processor\Append-> useElastica\Processor\AppendProcessorinsteadElastica\Processor\Attachment-> useElastica\Processor\AttachmentProcessorinsteadElastica\Processor\Convert-> useElastica\Processor\ConvertProcessorinsteadElastica\Processor\Date-> useElastica\Processor\DateProcessorinsteadElastica\Processor\DateIndexName-> useElastica\Processor\DateIndexNameProcessorinsteadElastica\Processor\DotExpander-> useElastica\Processor\DotExpanderProcessorinsteadElastica\Processor\Fail-> useElastica\Processor\FailProcessorinsteadElastica\Processor\Join-> useElastica\Processor\JoinProcessorinsteadElastica\Processor\Json-> useElastica\Processor\JsonProcessorinsteadElastica\Processor\Kv-> useElastica\Processor\KvProcessorinsteadElastica\Processor\Lowercase-> useElastica\Processor\LowercaseProcessorinsteadElastica\Processor\Remove-> useElastica\Processor\RemoveProcessorinsteadElastica\Processor\Rename-> useElastica\Processor\RenameProcessorinsteadElastica\Processor\Set-> useElastica\Processor\SetProcessorinsteadElastica\Processor\Sort-> useElastica\Processor\SortProcessorinsteadElastica\Processor\Split-> useElastica\Processor\SplitProcessorinsteadElastica\Processor\Trim-> useElastica\Processor\AppendProcessorinsteadElastica\Processor\Uppercase-> useElastica\Processor\UppercaseProcessorinsteadElastica\Query\Common-> useElastica\Query\MatchQueryinsteadElastica\QueryBuilder\DSL\Query::common_terms()-> useElastica\QueryBuilder\DSL\Query::match()insteadElastica\Transport\HttpAdapter-> useElastica\Transport\Httpinstead
- Removed deprecated methods #2135
Elastica\Aggregation\Range::setKeyedResponse()-> useElastica\Aggregation\Range::setKeyed()insteadElastica\Bulk::toString()-> useElastica\Bulk::__toString()or cast to string insteadElastica\Query\MatchQuery::setFieldCutoffFrequency()Elastica\Query\MultiMatch::setCutoffFrequency()Elastica\QueryBuilder\DSL\Aggregation::global_agg()-> useElastica\QueryBuilder\DSL\Aggregation::global()insteadElastica\Request::toString()-> useElastica\Request::__toString()or cast to string insteadElastica\Result::getType()Elastica\Suggest\Phrase::addCandidateGenerator()-> useElastica\Suggest\Phrase::addDirectGenerator()insteadElastica\Util::getParamName()
- Changed following aggregation constructors #2138
Elastica\Aggregation\AvgBucket: The second argument$bucketsPathis now mandatoryElastica\Aggregation\BucketScript: The second (array $bucketsPath) and the third (string $script) argument are now mandatoryElastica\Aggregation\BucketSelector: The second (array $bucketsPath) and the third (string $script) argument are now mandatoryElastica\Aggregation\Derivative: The second argument (string $bucketsPath) is now mandatoryElastica\Aggregation\NormalizeAggregation: The second (string $bucketsPath) and the third (string $method) argument are now mandatoryElastica\Aggregation\PercentilesBucket: The second argument (string $bucketsPath) is now mandatoryElastica\Aggregation\SerialDiff: The second argument (string $bucketsPath) is now mandatoryElastica\Aggregation\StatsBucket: The second argument (string $bucketsPath) is now mandatoryElastica\Aggregation\SumBucket: The second argument (string $bucketsPath) is now mandatory
- Changed return type of
Elastica\Cluster\Health::getActiveShardsPercentAsNumber()method tofloat#2144 - Changed
$originand$scaleparameter types ofElastica\Query\FunctionScore::addDecayFunction()to allowfloat|int|string#2144 - Changed
$keyparameter type ofElastica\Multi\Search::addSearch()to allowint|string|null#2144 - Changed
$optionsparameter type ofElastica\Index::create()to only allowarray<string, mixed>#2147 - Changed
Elastica\Reindex::setWaitForCompletion()to only allowbool#2151 - Changed
Elastica\Search::addIndex(),Elasica\Search::addIndices()andElastica\Search::hasIndex()parameter type to only allowElastica\Index#2150 - Changed
$optionsargument to not acceptintin the following methods #2148Elastica\SearchableInterface::search()Elastica\SearchableInterface::createSearch()Elastica\Search::search()Elastica\Search::createSearch()Elastica\Search::setOptionsAndQuery()Elastica\Index::search()Elastica\Index::createSearch()
- Removed classes #2188
Elastica\ConnectionElastica\Connection\ConnectionPoolElastica\Connection\Strategy\CallbackStrategyElastica\Connection\Strategy\RoundRobinElastica\Connection\Strategy\SimpleElastica\Connection\Strategy\StrategyFactoryElastica\Connection\Strategy\StrategyInterface
- Removed
Elastica\Client::setLogger()method #2148 - Enabled
strict_typeson all classes #2190 - Changed
Elastica\Scroll:clearto usescroll_idbody parameter instead of url parameter #2211 - Remove branch alias for dev-master from composer file #2215
Added
- Added support for PHP 8.2 #2136
- Added missing
@throwsannotations to Client::request and related methods #2152 - Added ElasticSearch 8.x to CI #2123
- Added more versions of ElasticSearch to CI #2155
- If not expicitly set, use
retry_on_conflictfrom Client configuration in Bulk updates (ported from 7.x #2184) - Added support for the Combined Fields query type #2195
Changed
- Updated
php-cs-fixerto3.13.2#2143 - Modernize code using
matchexpression #2141 - Updated docker/php/Dockerfile added AllowSymfonyFlexPlugin (false) on docker phpuser context #2194
Removed
- Removed the JSONParseException class, which is replaced by \JsonException
- Removed the JSONParseException test class
- Removed
nyholm/dsnas no longer needed. - Removed
symfony/deprecation-contractsas no longer needed.
Fixed
- Fix types order in
Elastica\Queryto work with psalm & expand theaggstype to include raw arrays
New Contributors
- @sidz made their first contribution in #2131
- @pawelkeska made their first contribution in #2181
- @Jean-Beru made their first contribution in #2178
- @daminuxfork made their first contribution in #2194
- @mparker17 made their first contribution in #2196
Full Changelog: 7.3.0...8.0.0
Release notes
Open source →This a major release with breaking changes. Have a look at the Upgrade guide.
Backward Compatibility Breaks
- Dropped support for PHP <8.0 #2131
- Removed deprecated classes in 7.x #2132
Elastica\Exception\ElasticsearchException-> useElastica\Exception\ResponseException::getResponse()::getFullError()insteadElastica\Exception\ResponseException::getElasticsearchException()-> useElastica\Exception\ResponseException::getResponse()::getFullError()insteadElastica\Processor\Append-> useElastica\Processor\AppendProcessorinsteadElastica\Processor\Attachment-> useElastica\Processor\AttachmentProcessorinsteadElastica\Processor\Convert-> useElastica\Processor\ConvertProcessorinsteadElastica\Processor\Date-> useElastica\Processor\DateProcessorinsteadElastica\Processor\DateIndexName-> useElastica\Processor\DateIndexNameProcessorinsteadElastica\Processor\DotExpander-> useElastica\Processor\DotExpanderProcessorinsteadElastica\Processor\Fail-> useElastica\Processor\FailProcessorinsteadElastica\Processor\Join-> useElastica\Processor\JoinProcessorinsteadElastica\Processor\Json-> useElastica\Processor\JsonProcessorinsteadElastica\Processor\Kv-> useElastica\Processor\KvProcessorinsteadElastica\Processor\Lowercase-> useElastica\Processor\LowercaseProcessorinsteadElastica\Processor\Remove-> useElastica\Processor\RemoveProcessorinsteadElastica\Processor\Rename-> useElastica\Processor\RenameProcessorinsteadElastica\Processor\Set-> useElastica\Processor\SetProcessorinsteadElastica\Processor\Sort-> useElastica\Processor\SortProcessorinsteadElastica\Processor\Split-> useElastica\Processor\SplitProcessorinsteadElastica\Processor\Trim-> useElastica\Processor\AppendProcessorinsteadElastica\Processor\Uppercase-> useElastica\Processor\UppercaseProcessorinsteadElastica\Query\Common-> useElastica\Query\MatchQueryinsteadElastica\QueryBuilder\DSL\Query::common_terms()-> useElastica\QueryBuilder\DSL\Query::match()insteadElastica\Transport\HttpAdapter-> useElastica\Transport\Httpinstead
- Removed deprecated methods #2135
Elastica\Aggregation\Range::setKeyedResponse()-> useElastica\Aggregation\Range::setKeyed()insteadElastica\Bulk::toString()-> useElastica\Bulk::__toString()or cast to string insteadElastica\Query\MatchQuery::setFieldCutoffFrequency()Elastica\Query\MultiMatch::setCutoffFrequency()Elastica\QueryBuilder\DSL\Aggregation::global_agg()-> useElastica\QueryBuilder\DSL\Aggregation::global()insteadElastica\Request::toString()-> useElastica\Request::__toString()or cast to string insteadElastica\Result::getType()Elastica\Suggest\Phrase::addCandidateGenerator()-> useElastica\Suggest\Phrase::addDirectGenerator()insteadElastica\Util::getParamName()
- Changed following aggregation constructors #2138
Elastica\Aggregation\AvgBucket: The second argument$bucketsPathis now mandatoryElastica\Aggregation\BucketScript: The second (array $bucketsPath) and the third (string $script) argument are now mandatoryElastica\Aggregation\BucketSelector: The second (array $bucketsPath) and the third (string $script) argument are now mandatoryElastica\Aggregation\Derivative: The second argument (string $bucketsPath) is now mandatoryElastica\Aggregation\NormalizeAggregation: The second (string $bucketsPath) and the third (string $method) argument are now mandatoryElastica\Aggregation\PercentilesBucket: The second argument (string $bucketsPath) is now mandatoryElastica\Aggregation\SerialDiff: The second argument (string $bucketsPath) is now mandatoryElastica\Aggregation\StatsBucket: The second argument (string $bucketsPath) is now mandatoryElastica\Aggregation\SumBucket: The second argument (string $bucketsPath) is now mandatory
- Changed return type of
Elastica\Cluster\Health::getActiveShardsPercentAsNumber()method tofloat#2144 - Changed
$originand$scaleparameter types ofElastica\Query\FunctionScore::addDecayFunction()to allowfloat|int|string#2144 - Changed
$keyparameter type ofElastica\Multi\Search::addSearch()to allowint|string|null#2144 - Changed
$optionsparameter type ofElastica\Index::create()to only allowarray<string, mixed>#2147 - Changed
Elastica\Reindex::setWaitForCompletion()to only allowbool#2151 - Changed
Elastica\Search::addIndex(),Elasica\Search::addIndices()andElastica\Search::hasIndex()parameter type to only allowElastica\Index#2150 - Changed
$optionsargument to not acceptintin the following methods #2148Elastica\SearchableInterface::search()Elastica\SearchableInterface::createSearch()Elastica\Search::search()Elastica\Search::createSearch()Elastica\Search::setOptionsAndQuery()Elastica\Index::search()Elastica\Index::createSearch()
- Removed classes #2188
Elastica\ConnectionElastica\Connection\ConnectionPoolElastica\Connection\Strategy\CallbackStrategyElastica\Connection\Strategy\RoundRobinElastica\Connection\Strategy\SimpleElastica\Connection\Strategy\StrategyFactoryElastica\Connection\Strategy\StrategyInterface
- Removed
Elastica\Client::setLogger()method #2148 - Enabled
strict_typeson all classes #2190 - Changed
Elastica\Scroll:clearto usescroll_idbody parameter instead of url parameter #2211 - Remove branch alias for dev-master from composer file #2215
Added
- Added support for PHP 8.2 #2136
- Added missing
@throwsannotations to Client::request and related methods #2152 - Added ElasticSearch 8.x to CI #2123
- Added more versions of ElasticSearch to CI #2155
- If not expicitly set, use
retry_on_conflictfrom Client configuration in Bulk updates (ported from 7.x #2184) - Added support for the Combined Fields query type #2195
Changed
- Updated
php-cs-fixerto3.13.2#2143 - Modernize code using
matchexpression #2141 - Updated docker/php/Dockerfile added AllowSymfonyFlexPlugin (false) on docker phpuser context #2194
Removed
- Removed the JSONParseException class, which is replaced by \JsonException
- Removed the JSONParseException test class
- Removed
nyholm/dsnas no longer needed. - Removed
symfony/deprecation-contractsas no longer needed.
Fixed
- Fix types order in
Elastica\Queryto work with psalm & expand theaggstype to include raw arrays
-
8.0.0-alpha103 May 2024 pre-releaseRelease notes
Open source →This is the first 8.0.0 alpha release for Elastica. It is compatible with Elasticsearch 8.0 and contains several breaking changes. We want to get this out in the wild to get as much feedback on it as we can. Any new issues found? Any migration issues? The work of getting us to GA is tracked here: #2185
Big thanks to the community for getting us to this release!
Changelog
Backward Compatibility Breaks
- Dropped support for PHP <8.0 #2131
- Removed deprecated classes in 7.x #2132
Elastica\Exception\ElasticsearchException-> useElastica\Exception\ResponseException::getResponse()::getFullError()insteadElastica\Exception\ResponseException::getElasticsearchException()-> useElastica\Exception\ResponseException::getResponse()::getFullError()insteadElastica\Processor\Append-> useElastica\Processor\AppendProcessorinsteadElastica\Processor\Attachment-> useElastica\Processor\AttachmentProcessorinsteadElastica\Processor\Convert-> useElastica\Processor\ConvertProcessorinsteadElastica\Processor\Date-> useElastica\Processor\DateProcessorinsteadElastica\Processor\DateIndexName-> useElastica\Processor\DateIndexNameProcessorinsteadElastica\Processor\DotExpander-> useElastica\Processor\DotExpanderProcessorinsteadElastica\Processor\Fail-> useElastica\Processor\FailProcessorinsteadElastica\Processor\Join-> useElastica\Processor\JoinProcessorinsteadElastica\Processor\Json-> useElastica\Processor\JsonProcessorinsteadElastica\Processor\Kv-> useElastica\Processor\KvProcessorinsteadElastica\Processor\Lowercase-> useElastica\Processor\LowercaseProcessorinsteadElastica\Processor\Remove-> useElastica\Processor\RemoveProcessorinsteadElastica\Processor\Rename-> useElastica\Processor\RenameProcessorinsteadElastica\Processor\Set-> useElastica\Processor\SetProcessorinsteadElastica\Processor\Sort-> useElastica\Processor\SortProcessorinsteadElastica\Processor\Split-> useElastica\Processor\SplitProcessorinsteadElastica\Processor\Trim-> useElastica\Processor\AppendProcessorinsteadElastica\Processor\Uppercase-> useElastica\Processor\UppercaseProcessorinsteadElastica\Query\Common-> useElastica\Query\MatchQueryinsteadElastica\QueryBuilder\DSL\Query::common_terms()-> useElastica\QueryBuilder\DSL\Query::match()insteadElastica\Transport\HttpAdapter-> useElastica\Transport\Httpinstead
- Removed deprecated methods #2135
Elastica\Aggregation\Range::setKeyedResponse()-> useElastica\Aggregation\Range::setKeyed()insteadElastica\Bulk::toString()-> useElastica\Bulk::__toString()or cast to string insteadElastica\Query\MatchQuery::setFieldCutoffFrequency()Elastica\Query\MultiMatch::setCutoffFrequency()Elastica\QueryBuilder\DSL\Aggregation::global_agg()-> useElastica\QueryBuilder\DSL\Aggregation::global()insteadElastica\Request::toString()-> useElastica\Request::__toString()or cast to string insteadElastica\Result::getType()Elastica\Suggest\Phrase::addCandidateGenerator()-> useElastica\Suggest\Phrase::addDirectGenerator()insteadElastica\Util::getParamName()
- Changed following aggregation constructors #2138
Elastica\Aggregation\AvgBucket: The second argument$bucketsPathis now mandatoryElastica\Aggregation\BucketScript: The second (array $bucketsPath) and the third (string $script) argument are now mandatoryElastica\Aggregation\BucketSelector: The second (array $bucketsPath) and the third (string $script) argument are now mandatoryElastica\Aggregation\Derivative: The second argument (string $bucketsPath) is now mandatoryElastica\Aggregation\NormalizeAggregation: The second (string $bucketsPath) and the third (string $method) argument are now mandatoryElastica\Aggregation\PercentilesBucket: The second argument (string $bucketsPath) is now mandatoryElastica\Aggregation\SerialDiff: The second argument (string $bucketsPath) is now mandatoryElastica\Aggregation\StatsBucket: The second argument (string $bucketsPath) is now mandatoryElastica\Aggregation\SumBucket: The second argument (string $bucketsPath) is now mandatory
- Changed return type of
Elastica\Cluster\Health::getActiveShardsPercentAsNumber()method tofloat#2144 - Changed
$originand$scaleparameter types ofElastica\Query\FunctionScore::addDecayFunction()to allowfloat|int|string#2144 - Changed
$keyparameter type ofElastica\Multi\Search::addSearch()to allowint|string|null#2144 - Changed
$optionsparameter type ofElastica\Index::create()to only allowarray<string, mixed>#2147 - Changed
Elastica\Reindex::setWaitForCompletion()to only allowbool#2151 - Changed
Elastica\Search::addIndex(),Elasica\Search::addIndices()andElastica\Search::hasIndex()parameter type to only allowElastica\Index#2150 - Changed
$optionsargument to not acceptintin the following methods #2148Elastica\SearchableInterface::search()Elastica\SearchableInterface::createSearch()Elastica\Search::search()Elastica\Search::createSearch()Elastica\Search::setOptionsAndQuery()Elastica\Index::search()Elastica\Index::createSearch()
- Removed classes #2188
Elastica\ConnectionElastica\Connection\ConnectionPoolElastica\Connection\Strategy\CallbackStrategyElastica\Connection\Strategy\RoundRobinElastica\Connection\Strategy\SimpleElastica\Connection\Strategy\StrategyFactoryElastica\Connection\Strategy\StrategyInterface
- Removed
Elastica\Client::setLogger()method #2148 - Enabled
strict_typeson all classes #2190 - Changed
Elastica\Scroll:clearto usescroll_idbody parameter instead of url parameter #2211
Added
- Added support for PHP 8.2 #2136
- Added missing
@throwsannotations to Client::request and related methods #2152 - Added ElasticSearch 8.x to CI #2123
- Added more versions of ElasticSearch to CI #2155
- If not expicitly set, use
retry_on_conflictfrom Client configuration in Bulk updates (ported from 7.x #2184) - Added support for the Combined Fields query type #2195
Changed
- Updated
php-cs-fixerto3.13.2#2143 - Modernize code using
matchexpression #2141 - Updated docker/php/Dockerfile added AllowSymfonyFlexPlugin (false) on docker phpuser context #2194
Removed
- Removed the JSONParseException class, which is replaced by \JsonException
- Removed the JSONParseException test class
- Removed
nyholm/dsnas no longer needed. - Removed
symfony/deprecation-contractsas no longer needed.
Fixed
- Fix types order in
Elastica\Queryto work with psalm & expand theaggstype to include raw arrays
New Contributors
- @sidz made their first contribution in #2131
- @pawelkeska made their first contribution in #2181
- @Jean-Beru made their first contribution in #2178
- @daminuxfork made their first contribution in #2194
- @mparker17 made their first contribution in #2196
Full Changelog: 7.3.2...8.0.0-alpha1
Release notes
Open source →Backward Compatibility Breaks
- Dropped support for PHP <8.0 #2131
- Removed deprecated classes in 7.x #2132
Elastica\Exception\ElasticsearchException-> useElastica\Exception\ResponseException::getResponse()::getFullError()insteadElastica\Exception\ResponseException::getElasticsearchException()-> useElastica\Exception\ResponseException::getResponse()::getFullError()insteadElastica\Processor\Append-> useElastica\Processor\AppendProcessorinsteadElastica\Processor\Attachment-> useElastica\Processor\AttachmentProcessorinsteadElastica\Processor\Convert-> useElastica\Processor\ConvertProcessorinsteadElastica\Processor\Date-> useElastica\Processor\DateProcessorinsteadElastica\Processor\DateIndexName-> useElastica\Processor\DateIndexNameProcessorinsteadElastica\Processor\DotExpander-> useElastica\Processor\DotExpanderProcessorinsteadElastica\Processor\Fail-> useElastica\Processor\FailProcessorinsteadElastica\Processor\Join-> useElastica\Processor\JoinProcessorinsteadElastica\Processor\Json-> useElastica\Processor\JsonProcessorinsteadElastica\Processor\Kv-> useElastica\Processor\KvProcessorinsteadElastica\Processor\Lowercase-> useElastica\Processor\LowercaseProcessorinsteadElastica\Processor\Remove-> useElastica\Processor\RemoveProcessorinsteadElastica\Processor\Rename-> useElastica\Processor\RenameProcessorinsteadElastica\Processor\Set-> useElastica\Processor\SetProcessorinsteadElastica\Processor\Sort-> useElastica\Processor\SortProcessorinsteadElastica\Processor\Split-> useElastica\Processor\SplitProcessorinsteadElastica\Processor\Trim-> useElastica\Processor\AppendProcessorinsteadElastica\Processor\Uppercase-> useElastica\Processor\UppercaseProcessorinsteadElastica\Query\Common-> useElastica\Query\MatchQueryinsteadElastica\QueryBuilder\DSL\Query::common_terms()-> useElastica\QueryBuilder\DSL\Query::match()insteadElastica\Transport\HttpAdapter-> useElastica\Transport\Httpinstead
- Removed deprecated methods #2135
Elastica\Aggregation\Range::setKeyedResponse()-> useElastica\Aggregation\Range::setKeyed()insteadElastica\Bulk::toString()-> useElastica\Bulk::__toString()or cast to string insteadElastica\Query\MatchQuery::setFieldCutoffFrequency()Elastica\Query\MultiMatch::setCutoffFrequency()Elastica\QueryBuilder\DSL\Aggregation::global_agg()-> useElastica\QueryBuilder\DSL\Aggregation::global()insteadElastica\Request::toString()-> useElastica\Request::__toString()or cast to string insteadElastica\Result::getType()Elastica\Suggest\Phrase::addCandidateGenerator()-> useElastica\Suggest\Phrase::addDirectGenerator()insteadElastica\Util::getParamName()
- Changed following aggregation constructors #2138
Elastica\Aggregation\AvgBucket: The second argument$bucketsPathis now mandatoryElastica\Aggregation\BucketScript: The second (array $bucketsPath) and the third (string $script) argument are now mandatoryElastica\Aggregation\BucketSelector: The second (array $bucketsPath) and the third (string $script) argument are now mandatoryElastica\Aggregation\Derivative: The second argument (string $bucketsPath) is now mandatoryElastica\Aggregation\NormalizeAggregation: The second (string $bucketsPath) and the third (string $method) argument are now mandatoryElastica\Aggregation\PercentilesBucket: The second argument (string $bucketsPath) is now mandatoryElastica\Aggregation\SerialDiff: The second argument (string $bucketsPath) is now mandatoryElastica\Aggregation\StatsBucket: The second argument (string $bucketsPath) is now mandatoryElastica\Aggregation\SumBucket: The second argument (string $bucketsPath) is now mandatory
- Changed return type of
Elastica\Cluster\Health::getActiveShardsPercentAsNumber()method tofloat#2144 - Changed
$originand$scaleparameter types ofElastica\Query\FunctionScore::addDecayFunction()to allowfloat|int|string#2144 - Changed
$keyparameter type ofElastica\Multi\Search::addSearch()to allowint|string|null#2144 - Changed
$optionsparameter type ofElastica\Index::create()to only allowarray<string, mixed>#2147 - Changed
Elastica\Reindex::setWaitForCompletion()to only allowbool#2151 - Changed
Elastica\Search::addIndex(),Elasica\Search::addIndices()andElastica\Search::hasIndex()parameter type to only allowElastica\Index#2150 - Changed
$optionsargument to not acceptintin the following methods #2148Elastica\SearchableInterface::search()Elastica\SearchableInterface::createSearch()Elastica\Search::search()Elastica\Search::createSearch()Elastica\Search::setOptionsAndQuery()Elastica\Index::search()Elastica\Index::createSearch()
- Removed classes #2188
Elastica\ConnectionElastica\Connection\ConnectionPoolElastica\Connection\Strategy\CallbackStrategyElastica\Connection\Strategy\RoundRobinElastica\Connection\Strategy\SimpleElastica\Connection\Strategy\StrategyFactoryElastica\Connection\Strategy\StrategyInterface
- Removed
Elastica\Client::setLogger()method #2148 - Enabled
strict_typeson all classes #2190 - Changed
Elastica\Scroll:clearto usescroll_idbody parameter instead of url parameter #2211
Added
- Added support for PHP 8.2 #2136
- Added missing
@throwsannotations to Client::request and related methods #2152 - Added ElasticSearch 8.x to CI #2123
- Added more versions of ElasticSearch to CI #2155
- If not expicitly set, use
retry_on_conflictfrom Client configuration in Bulk updates (ported from 7.x #2184) - Added support for the Combined Fields query type #2195
Changed
- Updated
php-cs-fixerto3.13.2#2143 - Modernize code using
matchexpression #2141 - Updated docker/php/Dockerfile added AllowSymfonyFlexPlugin (false) on docker phpuser context #2194
Removed
- Removed the JSONParseException class, which is replaced by \JsonException
- Removed the JSONParseException test class
- Removed
nyholm/dsnas no longer needed. - Removed
symfony/deprecation-contractsas no longer needed.
Fixed
- Fix types order in
Elastica\Queryto work with psalm & expand theaggstype to include raw arrays
-
7.3.211 Mar 2024Release notes
Open source →What's Changed
- Remove duplicated key in TRawQuery by @franmomu in #2159
- Update Makefile by @tevesm in #2165
- Add more missing @throws tags (V7) by @VincentLanglet in #2176
- Apply RetryOnConflict on Bulk documents by @csabavirag in #2184
- Prepare release v7.3.2 by @thePanz in #2199
Full Changelog: 7.3.1...7.3.2
-
7.3.121 Apr 2023Release notes
Open source →Added
- Added missing
@throwsannotations to Client::request and related methods #2153
Deprecated
- Deprecated not passing a
buckets_pathandscriptwhen constructingElastica\Aggregation\BucketScriptandElastica\Aggregation\BucketSelector
Fixed
- Fix types order in
Elastica\Queryto work with psalm & expand theaggstype to include raw arrays
- Added missing
-
7.3.030 Nov 2022Release notes
Open source →Changed
- Use
ramsey/composer-installto simplify CI jobs and test with the lowest set of dependencies #2113 - Bumped
elasticsearch/elasticsearchto7.10to be able to useOpenPointInTimeclass #2113 - Updated
php-cs-fixerto3.9.5#2110 - Changed
Elastica\Index\Settings::getadding ability to get default settings by @krasilnikovm #2115 - Update
AWSAuthV4 transportto sanitize host name for AWS requests before signing #2090 - New method
Elastica\Aggregation\Terms::setMissingBucket. For Composite Agg. Include in the response documents without a value for a given source. #2117 - Increased
PHPStanlevel to5by @franmomu #2108
Removed
- Removed
CallbackStrategyTestHelperandErrorsCollectorfromtests#2111
Fixed
- Fixed
Query/Termsterms phpdoc fromarray<bool|float|int|string>tolist<bool|float|int|string>#2118 - Fixed
Responseto prevent throwing JSONParseException when the response is empty.
New Contributors
- @krasilnikovm made their first contribution in #2115
- @jhuebner79 made their first contribution in #2090
- @aribon-cs made their first contribution in #2125
Full Changelog: 7.2.0...7.3.0
Release notes
Open source →Changed
- Use
ramsey/composer-installto simplify CI jobs and test with the lowest set of dependencies #2113 - Bumped
elasticsearch/elasticsearchto7.10to be able to useOpenPointInTimeclass #2113 - Updated
php-cs-fixerto3.9.5#2110 - Changed
Elastica\Index\Settings::getadding ability to get default settings by @krasilnikovm #2115 - Update
AWSAuthV4 transportto sanitize host name for AWS requests before signing #2090 - New method
Elastica\Aggregation\Terms::setMissingBucket. For Composite Agg. Include in the response documents without a value for a given source. #2117 - Increased
PHPStanlevel to5by @franmomu #2108
Removed
- Removed
CallbackStrategyTestHelperandErrorsCollectorfromtests#2111
Fixed
- Fixed
Query/Termsterms phpdoc fromarray<bool|float|int|string>tolist<bool|float|int|string>#2118 - Fixed
Responseto prevent throwing JSONParseException when the response is empty.
- Use
-
7.2.002 Aug 2022Release notes
Open source →Backward Compatibility Breaks
- Changed
SetProcessor::setValuesignature to allow to pass any type, if you are overriding this method you must update the signature removing thestringtype-hint by @franmomu #2082 - Changed
Settings::setMergePolicysignature to allow to passintandstringas argument 2, if you are overriding this method you must update the signature removing thestringtype-hint by @franmomu #2085
Added
- Added
PHPStanat level 3 by @franmomu #2064 - Added coverage check to CI by @franmomu #2071
- Added
stringas a valid type fordatainRequestby @franmomu #2078 - Added missing
throwsPHPDoc tags by @franmomu #2077 - Added
Search::addIndexByName(),Search::hasIndexByName()andSearch::addIndicesByName()by @franmomu #2103
Changed
- Updated
symfony/phpunit-bridgeto6.0by @franmomu #2067 - Updated
php-cs-fixerto3.8.0#2074 - Updated
composer-normalizeto2.2.28by @deguif #2084 - Increased
PHPStanlevel to4#2080 ExceptionInterfaceextendsThrowable#2083- Changed
valueinSetProcessorto acceptmixedinstead ofstringby @franmomu #2082 - Updated
Query::createPHPDoc to include supported types and propagate it to callers by @franmomu #2088 - Update some iterable types in PHPDoc to be more specific by @franmomu #2092
- Updated
AwsAuthV4Testadding assertions for exception type by @franmomu #2094
Deprecated
- Deprecated
Elastica\Reindex::WAIT_FOR_COMPLETION_FALSE, use a boolean as parameter instead by @franmomu #2070 - Passing anything else than a boolean as 1st argument to
Reindex::setWaitForCompletion, pass a boolean instead by @franmomu #2070 - Deprecated passing a
stringas 1st argument toSearch::addIndex()andSearch::hasIndex(), pass an Index instance instead by @franmomu #2103 - Deprecated passing an array of
stringas 1st argument toSearch::addIndices(), use an array of Index instances by @franmomu #2103
Removed
- Removed
egeloen/http-adapteras suggested package since the project is abandoned by @franmomu #2069 - Removed
0as valid request data using Analyze API by @franmomu #2068 - Removed dead code in
AwsAuthV4Testby @franmomu #2073
Fixed
- Fixed some PHPDoc types adding
nullas possible value by @franmomu #2070 and #2087 - Fixed passing wrong types to
GapPolicyInterface::setGapPolicy(),Document::setDocAsUpsert()andConnection::setPort()methods by @franmomu #2081 - Fixed
HttpPHPDoc adding\CurlHandletype for Curl connection by @franmomu #2086 - Fixed case mismatch in method calls by @franmomu #2087
- Fixed
MoreLikeThis::setLike()PHPDoc allowingDocumentby @franmomu #2091 - Fixed
Term::setTerm()PHPDoc allowing scalar values for$valueparameter by @franmomu #2094 - Fixed
DateHistogramdeprecation: usefixed_internalorcalendar_intervalinstead ofintervalby @VincentLanglet #2099
New Contributors
Full Changelog: 7.1.5...7.2.0
Release notes
Open source →Backward Compatibility Breaks
- Changed
SetProcessor::setValuesignature to allow to pass any type, if you are overriding this method you must update the signature removing thestringtype-hint by @franmomu #2082 - Changed
Settings::setMergePolicysignature to allow to passintandstringas argument 2, if you are overriding this method you must update the signature removing thestringtype-hint by @franmomu #2085
Added
- Added
PHPStanat level 3 by @franmomu #2064 - Added coverage check to CI by @franmomu #2071
- Added
stringas a valid type fordatainRequestby @franmomu #2078 - Added missing
throwsPHPDoc tags by @franmomu #2077 - Added
Search::addIndexByName(),Search::hasIndexByName()andSearch::addIndicesByName()by @franmomu #2103
Changed
- Updated
symfony/phpunit-bridgeto6.0by @franmomu #2067 - Updated
php-cs-fixerto3.8.0#2074 - Updated
composer-normalizeto2.2.28by @deguif #2084 - Increased
PHPStanlevel to4#2080 ExceptionInterfaceextendsThrowable#2083- Changed
valueinSetProcessorto acceptmixedinstead ofstringby @franmomu #2082 - Updated
Query::createPHPDoc to include supported types and propagate it to callers by @franmomu #2088 - Update some iterable types in PHPDoc to be more specific by @franmomu #2092
- Updated
AwsAuthV4Testadding assertions for exception type by @franmomu #2094
Deprecated
- Deprecated
Elastica\Reindex::WAIT_FOR_COMPLETION_FALSE, use a boolean as parameter instead by @franmomu #2070 - Passing anything else than a boolean as 1st argument to
Reindex::setWaitForCompletion, pass a boolean instead by @franmomu #2070 - Deprecated passing a
stringas 1st argument toSearch::addIndex()andSearch::hasIndex(), pass an Index instance instead by @franmomu #2103 - Deprecated passing an array of
stringas 1st argument toSearch::addIndices(), use an array of Index instances by @franmomu #2103
Removed
- Removed
egeloen/http-adapteras suggested package since the project is abandoned by @franmomu #2069 - Removed
0as valid request data using Analyze API by @franmomu #2068 - Removed dead code in
AwsAuthV4Testby @franmomu #2073
Fixed
- Fixed some PHPDoc types adding
nullas possible value by @franmomu #2070 and #2087 - Fixed passing wrong types to
GapPolicyInterface::setGapPolicy(),Document::setDocAsUpsert()andConnection::setPort()methods by @franmomu #2081 - Fixed
HttpPHPDoc adding\CurlHandletype for Curl connection by @franmomu #2086 - Fixed case mismatch in method calls by @franmomu #2087
- Fixed
MoreLikeThis::setLike()PHPDoc allowingDocumentby @franmomu #2091 - Fixed
Term::setTerm()PHPDoc allowing scalar values for$valueparameter by @franmomu #2094 - Fixed
DateHistogramdeprecation: usefixed_intervalorcalendar_intervalinstead ofintervalby @VincentLanglet #2099
- Changed
-
7.1.529 Mar 2022 -
7.1.414 Feb 2022Release notes
Open source →Added
- Added support for
symfony/deprecation-contracts3.0 by @rguennichi #2047 - Added aggregation
auto_date_histogram@andriinavrotskii #2051
Fixed
- Added support for
-
7.1.309 Dec 2021Release notes
Open source →Added
- Added support for scripted upsert on bulk requests by @dsgrillo #1974
- Added
Elastica\Aggregation\CumulativeSumby @limenet #1987 - Added
ignore_failureoption to suitable ingest processors by @deguif #2003 - Added
ignore_missingoption tolowercase,remove,trimanduppercaseprocessors by @deguif #2001 - Added
allow_duplicatesoption toappendprocessor by @deguif #2004 - Added
bytesprocessor by @deguif #2008 - Added
indices_boostoption toElastica\Queryby @deguif #2018 - Added
Elastica\Query\Terms::setBoost()method to configure boost by @deguif #2035 - Added
Elastica\Query\TermsSetquery by @mamchyts #2020 - Added
terms_setin query builder by @deguif #2036 - Added
Elastica\Aggregation\Traits\BucketsPathTraitto configurebuckets_pathon aggregations by @deguif #2037 #2039 - Allowed to configure a sub key when adding a param with
Elastica\Param::addParam()by @deguif #2030
Changed
- Triggered deprecation in
Elastica\Result::getType()method by @deguif #2016 - Updated
php-cs-fixerto3.3.2by @deguif #2022 - Updated
composer-normalizeto2.15.0by @deguif #2021 - Updated
elasticsearchtest version to7.15.2by @deguif #2027 - Extracted setting gap policy to
\Elastica\Aggregation\Traits\GapPolicyTraitand introduced\Elastica\Aggregation\GapPolicyInterfacewith constants for options by @stchr #2023 - Extracted setting
fieldtoElastica\Processor\Traits\FieldTraitby @deguif #2024 - Extracted setting
target_fieldtoElastica\Processor\Traits\TargetFieldTraitby @deguif #2026 - Simplified github action matrix for continuous integration workflow by @deguif #2025
Deprecated
- Deprecated
Elastica\Query\Commonclass, useElastica\Query\MatchQueryinstead by @deguif #2013 - Deprecated
Elastica\QueryBuilder\DSL\Query::common_terms(), usematch()instead by @deguif #2013 - Deprecated passing an
intas 1st argument toElastica\Search::setOptionsAndQuery(), pass an array with the keysizeinstead by @deguif #2010 - Deprecated
cutoff_frequencyoption ofElastica\Query\MatchQueryby @deguif #2014 - Deprecated
cutoff_frequencyoption ofElastica\Query\MultiMatchby @deguif #2015 - Deprecated
Elastica\Bulk::toString(),Elastica\Bulk\Action::toString()andElastica\Request::toString()methods, use__toString()method or cast to string instead by @deguif #2033 - Deprecated not passing a
buckets_pathwhen constructingElastica\Aggregation\AvgBucket,Elastica\Aggregation\Derivative,Elastica\Aggregation\NormalizeAggregation,Elastica\Aggregation\PercentilesBucket,Elastica\Aggregation\SerialDiff,Elastica\Aggregation\StatsBucketandElastica\Aggregation\SumBucketby @deguif #2038 - Deprecated not passing a
methodwhen constructingElastica\Aggregation\NormalizeAggregationby @deguif #2040
Removed
- Removed remaining
_typefield usages by @deguif #2017 - Removed
Elastica\Bulk::$_typedead property by @deguif #2034 - Removed Elasticsearch old version checks in tests by @deguif #2041
Fixed
-
7.1.221 Oct 2021Release notes
Open source →Backward Compatibility Breaks
- Changed
Elastica\Exception\JSONParseExceptioninheritance, it now extends\JsonExceptioninstead of\RuntimeException#1949
Added
- Added
Elastica\Aggregation\NormalizeAggregation#1956 - Added
Elastica\Suggest\Phrase::addDirectGeneratorto align with ES specification #1964 - Added support for
psr/log2.0 and 3.0 #1971 - Added new optional 'case_insensitive' option to
Elastica\Query\Wildcard#1894 - Added
Elastica\Result::getSort()fetching the "sort" property of results #1979 - Added exposure of Point-In-Time ID for search responses in
Elastica\ResultSet::getPointInTimeId()#1991 - Added
Elastica\Index::openPointInTime()for opening a PiT on the index #1994 - Added possibility to specify PointInTime on
Elastica\Query::setPointInTime()#1992 - Added
Elastica\Client::closePointInTime()for closing a PiT #1995
Changed
- Updated
php-cs-fixerto3.2.1#1996 #1959 #1955 - Using default Elasticsearch images for testing instead of OSS https://github.com/ruflin/Elastica/pull/1954
Fixed
- Changed
-
7.1.124 Mar 2021Release notes
Open source →Backward Compatibility Breaks
- Changed
Elastica\Query\MatchQuery::setFieldParam()signature to allow passing bool, float or int #1941 - Changed
Elastica\Query\MatchPhraseQuery::setFieldParam()signature to allow passing bool, float or int #1944
Added
- Excluded
dockerdirectory in.gitattributes#1938
Changed
- Included
Content-TypeHTTP header every time, whatever the content of the body is #1780 - Changed
Elastica\Status::indexExists(),Elastica\Status::aliasExists()andElastica\Status::getIndicesWithAlias()signatures #1929 - Replaced
call_user_func()andcall_user_func_array()by direct calls #1923 - Replaced legacy constant
CURLINFO_HTTP_CODEbyCURLINFO_RESPONSE_CODE#1931 - Updated
php-cs-fixerto2.18.3#1915 - Updated
composer-normalizeto2.13.3#1927
Deprecated
- Deprecated
Elastica\Transport\HttpAdapterclass #1940 - Deprecated
Elastica\Exception\JSONParseExceptionexception, catch\JsonExceptioninstead #1949
Fixed
- Fixed wrong
ltrimusage in guzzle transport #1783 - Fixed
_seq_noand_primary_termwrong initialization #1920 - Fixed
Elastica\Connection\StrategyInterfaceinstance checks #1921 - Fixed various PHPDoc annotations #1922
- Fixed numeric index names are returned as
intinElastica\Status::getIndexNames()#1928 - Fixed using raw array in
post_filter#1950
- Changed
-
7.1.015 Feb 2021Release notes
Open source →Backward Compatibility Breaks
- Added a default value to
Elastica\Aggregation\Range::setKeyed()andElastica\Aggregation\PercentilesBucket::setKeyed()#1876 - Removed type-hint to
Elastica\Aggregation\Percentiles::setMissing()argument #1875 - Allowed the Terms query to accept an array of bool, float, int and/or string #1872
Added
- Added
auth_typeparameter in the client class config to specify the type of authentication (allowed values arebasic, digest, gssnegotiate, ntlm) #1790 - Added
if_seq_no/if_primary_termto replaceversionfor optimistic concurrency control #1803 - Added
Elastica\Aggregation\PercentilesBucketaggregation #1806 - Added
weighted_avgto aggregations DSL #1814 - Added support for defining a connection pool with DSN. Example:
pool(http://127.0.0.1 http://127.0.0.2/bar?timeout=4)#1808 - Added
Elastica\Aggregation\Compositeaggregation #1804 - Added
symfony/deprecation-contractspackage to handle deprecations #1823 - Added
list_syntaxCS rule #1854 - Added
native_constant_invocationCS rule #1833 - Added
static_lambdaCS rule #1870 - Added
Elastica\Aggregation\DateRange::setTimezone()#1847 - Added endpoint options support to
Elastica\Index::create()#1859 - Added
Elastica\Aggregation\DateHistogram::setKeyed()#1876 - Added
Elastica\Aggregation\GeoDistance::setKeyed()#1876 - Added
Elastica\Aggregation\Histogram::setKeyed()#1876 - Added
Elastica\Aggregation\IpRange::setKeyed()#1876 - Added
Elastica\Aggregation\GeotileGridAggregation#1880 - Added
Elastica\Aggregation\Avg::setMissing(),Elastica\Aggregation\Cardinality::setMissing(),Elastica\Aggregation\DateRange::setMissing(),Elastica\Aggregation\DateHistogram::setMissing(),Elastica\Aggregation\ExtendedStats::setMissing(),Elastica\Aggregation\Histogram::setMissing(),Elastica\Aggregation\Max::setMissing(),Elastica\Aggregation\Min::setMissing(),Elastica\Aggregation\Stats::setMissing(),Elastica\Aggregation\Sum::setMissing(),Elastica\Aggregation\Terms::setMissing()#1876 - Supported
guzzlehttp/guzzle7.x #1816 - Supported PHP 8.0 #1794
- Supported BC break on
elasticsearch/elasticsearchversion7.4.0#1864
Changed
- Allowed
stringsuch aswait_forto be passed toAbstractUpdateAction::setRefresh#1791 - Allowed float values for connection timeout and connection connect-timeout, providing ms precision for those. Previous precision was second. #1868
- Changed the return type of
AbstractUpdateAction::getRefreshtoboolean|string#1791 - Reviewed options handling in
Elastica\Index::create()#1822 - Replaced deprecated
exceptionsrequest option byhttp_errorsrequest option in Guzzle transport #1817 - Run coding styles check on github action #1878
- Run unit tests on github action #1882
- Run functional tests on github action #1885
- Updated
php-cs-fixerto2.16.4#1830 - Updated
php-cs-fixerto2.16.7#1881 - Updated
php-cs-fixerto2.17.3#1895 - Updated
php-cs-fixerto2.18.2#1897 - Used
GuzzleHttp\RequestOptionsconstants for configuring request options #1820 - Used new alias endpoints classes #1839
- Used new cache endpoints classes #1840
- Used new ingest pipeline endpoints classes #1834
- Used new mapping endpoints classes #1845
- Used new nodes endpoints classes #1863
- Used new settings endpoints classes #1852
Deprecated
- Deprecated
Elastica\Aggregation\Range::setKeyedResponse(), usesetKeyed()instead #1848 - Deprecated
Elastica\Exception\ResponseException::getElasticsearchException(), usegetResponse()::getFullError()instead #1829 - Deprecated
Elastica\QueryBuilder\DSL\Aggregation::global_agg(), useglobal()instead #1826 - Deprecated
Elastica\Util::getParamName()#1832 - Deprecated all Processor class names in favor of suffixed class names #1893
- Deprecated Match query class and introduced MatchQuery instead for PHP 8.0 compatibility reason #1799
- Deprecated
version/version_typeoptions (deprecated in6.7.0) and addedif_seq_no/if_primary_termthat replaced it - Deprecated passing
boolornullas 2nd argument toElastica\Index::create()#1828
Removed
- Removed HHVM proxy detection #1818
Fixed
- Fixed issue 1789
- Fixed type-hint for
Elastica\QueryBuilder\DSL\Aggregation::sampler()not consistent with the underlying constructor call #1815 - Fixed
Elastica\Util::toSnakeCase()with first letter being lower cased #1831 - Fixed handling precision as string in
Elastica\Aggregation\GeohashGrid::setPrecision()#1884 - Fixed calling
Elastica\Aggregation\Composite::addAfter()with thenullvalue 1877 - Replaced
_routingand_retry_on_conflictbyroutingandretry_on_conflictinAbstractUpdateAction#1807
- Added a default value to
-
7.0.010 Jun 2020Release notes
Open source →Added
- Added
Elastica\Aggregation\WeightedAvgaggregation #1770
Changed
- Added missing Response information to Bulk/ResponseSet #1776
- Added
-
7.0.0-beta210 Dec 2019 pre-releaseRelease notes
Open source →Backward Compatibility Breaks
- The method
Index::deleteById()does not throw anNotFoundExceptionwhen deleting a non-existing document #1732 - The class
\Elastica\QueryBuilder\Version\Version240has been moved to\Elastica\QueryBuilder\Version\Version700#1693 - Dropped support for PHP 7.1 #1703
Bugfixes
- Renamed
\Elastica\Suggest\Termdeprecated optionprefix_lentoprefix_length#1707 - The
\Elastica\Query\GeoPolygon::count()method now returns the count of points passed to the filter #1696 - Fix issue in
\Elastica\Client::request()which causes request data to not be sent to the logger #1682
Added
- Added
geo_bounding_box,geo_polygon,match_phrase,match_phrase_prefix,match_noneto\Elastica\QueryBuilder\Version\Version700#1702 - Added
\Elastica\ResultSet::getTotalHitsRelation()to get relation for total hits #1694 - Added
Sampleraggregation #1688
Improvements
- The method
-
7.0.0-beta131 Oct 2019 pre-releaseRelease notes
Open source →Backward Compatibility Breaks
- The class
\Elastica\Type\Mappinghas been moved to\Elastica\Mapping#1666 - The
\Elastica\Query::$_suggestproperty has been renamed to$hasSuggestand is now private, it should not be used from extending classes #1679 \Elastica\Documentexpects a string as ID, not an int #1672.- Removed
\Elastica\Query\GeohashCellquery, use\Elastica\Query\GeoBoundingBoxinstead #1672. - Deprecated usage of
\Elastica\Typeclass,\Elastica\Indexclass must be used instead #1666 - Removed
\Elastica\Typeclass,\Elastica\Indexclass must be used instead #1666 - Forced index names to string in
\Elastica\Index::__construct()#1666 - Removed Type query
\Elastica\Query\Type#1666 - Removed
Elastica\Typeclass,Elastica\Indexclass must be used instead #1666 - Removed
typehandling fromElastica\Searchclass #1666 - Removed
typehandling fromElastica\BulkandElastica\Bulk\Actionclasses #1666 - Forced index names to string in
Elastica\Index::__construct()#1666 - Removed Type query
Elastica\Query\Type#1666 - Dropped support for PHP 7.0
- \Elastica\AbstractUpdateAction::getOptions( $fields ) no longer supports the $underscore parameter, option names must match what elasticsearch expects.
- Removed no longer supported \Elastica\Query\QueryString::setAutoGeneratePhraseQueries( $bool ) #1622
- Replaced params._agg with state context variable in scripted metric aggregations
- Camel Case and underscore parameters deprecated in 6.x have been removed
- The parameter fields deprecated in 6.x has been removed from Bulk requestedit and Update request.
- The _parent field has been removed in favour of the join field.
- hits.total is now an object in the search response hits.total
- Elastica\Reindex does not return an Index anymore but a Response.
- Elastica\Reindex->run() does not refresh the new Index after completion anymore. Use
$reindex->setParam(Reindex::REFRESH, 'wait_for')instead. Elastica\Search->search()andElastica\Search->count()use request methodPOSTby default. Same forElastica\Index,Elastica\Type\AbstractType,Elastica\Type.- Elastica\Client
$_configfield is now aClientConfigurationinstead of an array - Removed
\Elastica\Client::_log,\Elastica\Logand thelogconfiguration option. Use thePsr\Log\LoggerInterface $loggerclient argument to customize logging. - Changed all factory methods to make use of late static bindings by using
staticinstead ofselfkeyword. This is to increase extendability for classes with factory methods.
Bugfixes
- Always set the Guzzle
base_urito support connecting to multiple ES hosts. #1618 - Properly handle underscore prefixes in options and bulk request metadata (cf upstream. #1621
- Preserve zeros while doing float serialization to JSON. #1635
- Add
settingslevel on json to create an Index in all tests (it worked till 6.x but it shouldn't work)
Added
- support for elasticsearch-php ^7.0
- Added
ParentAggregation#1616 - Elastica\Reindex missing options (script, remote, wait_for_completion, scroll...)
- Added
AdjacencyMatrixaggregation #1642 - Added request method parameter to
Elastica\SearchableInterface->search()andElastica\SearchableInterface->count(). Same forElastica\Search#1441 - Added support for Field Collapsing (Issue: #1392; PR: #1653)
- Support string DSN in
\Elastica\Clientconstructor for config argument #1640 - Move Client configuration in a dedicated class
- Added
callabletype hinting to$callbackinClientconstructor. #1659 - Added
setTrackTotalHitsmethod toElastica\Query#1663 - Allow metadata to be set on Aggregations (via
AbstractAggregation::setMeta(array)). #1677
Improvements
- The class
-
7.0.0-beta.423 Mar 2020 pre-releaseRelease notes
Open source →Backward Compatibility Breaks
- If you're NOT using composer to manage your libraries: the root directory of the library's source code moved from
lib/Elastica/tosrc/. - The
Wildcard::setValue()changed its signature: use it to set the value of the wildcard query only. - The
WildcardQuery's constructor now requires thenameandvalueproperties. - The
TermsQuery's constructor now requires thefieldandtermsproperties.
Added
- Added
AbstractTermsAggregation::setIncludeAsExactMatch()#1766 - Added
AbstractTermsAggregation::setExcludeAsExactMatch()#1766 - Added
AbstractTermsAggregation::setIncludeWithPartitions()#1766 - Added
Elastica\Reindex->setPipeline(Elastica\Pipeline $pipeline): void. The link between the reindex and the pipeline is solved whenrun()is called, and thus the pipeline given doesn't need to be created before callingsetPipeline()#1752 - Added
Elastica\Reindex->setRefresh(string $value): void. It acceptsREFRESH_*constants from its class #1752 and #1758 - Added
Elastica\Reindex->setQuery(Elastica\Query\AbstractQuery $query): void#1752 - Added constants
PIPELINE,REFRESH_TRUE,REFRESH_FALSE,REFRESH_WAIT_FOR,SLICESandSLICES_AUTOtoElastica\Reindex#1752 - Added
Elastica\Pipeline->getId(): ?string#1752 - Added
Elastica\Aggregation\ExtendedStatsBucketaggregation #1756
Changed
- Changed
Terms::setTerms()signature: it now accepts a list of strings only #1765 - Changed
Terms::setTermsLookup()signature:index,pathandidare now required arguments #1765 - Changed
Wildcard::setValue()and constructor's signature: added more specificWildcard::setBoost()andWildcard::setRewritemethods - Updated PHP coding standards to adhere to PSR-12 #1760
- Updated to PHPUnit v8.5 #1759
- Refactored code structure: use
src/andtests/folders #1755 - Require elastica-php library >= v7.1.1, fixes an issue on Ingestion/Put() type-hinting
- Require guzzle >= v6.3 as development library: fixes issues on PHP >= 7.2
- Require phpunit >= v7.5, fixes deprecations in with PHP 7.3
- Scroll is now throwing an exception when calling
current()on an invalid iteration: always callvalid()before accessing the current item, as documented in PHP's Iterator documentation #1749
Removed
- If you're NOT using composer to manage your libraries: the root directory of the library's source code moved from
-
7.0.0-beta.316 Jan 2020 pre-releaseRelease notes
Open source →- Marked Elastica 5.x as unmaintained
Bugfixes
- Fix Search::count() not counting all results #1746
- Fixed handling of Search::OPTION_SEARCH_IGNORE_UNAVAILABLE inside Scroll object
Added
- Added
DiversifiedSampleraggregation #1735 - Added
\Elastica\Query\DistanceFeature#1730 - Added support for injecting a callable AWS credential provider to use static, cached, or custom-sourced credentials #1667
Improvements
- Scroll releases previous ResultSet from memory before calling ES for next data batch #1740
-
6.2.114 Apr 2022Release notes
Open source →Improvements
- Solve PHP 8.1 deprecations for every class implementing Countable, Iterator or ArrayAccess by @VincentLanglet #2061
Full Changelog: 6.2.0...6.2.1
-
6.2.008 Oct 2021Nothing published for this version
-
6.1.524 Mar 2021Nothing published for this version
-
6.1.417 Mar 2021Nothing published for this version
-
6.1.317 Feb 2021Nothing published for this version
-
6.1.216 Feb 2021Nothing published for this version
-
6.1.129 Jan 2019Release notes
Open source →Added
- The preferred type name is _doc, so that index APIs have the same path as they will have in 7.0
- Added
BucketSelectoraggregation #1554 - Added
DerivativeAggregation#1553 - The preferred type name is _doc, so that index APIs have the same path as they will have in 7.0
- Introduced new version of PHP-CS-Fixer and new Lint travis step. #1555
- Added
typed_keyssupport for Search queries #1603
Improvements
- Reduced memory footprint of response by not keeping the raw JSON data when JSON after JSON has been parsed. #1588
Deprecated
- Index templates use index_patterns instead of template
-
6.1.007 Dec 2018Release notes
Open source →Backward Compatibility Breaks
- Made result sets adhere to
\Iteratorinterface definition that they implement. Specifically, you need to callvalid()on the result set before callingcurrent(). When usingforeachthis is done by PHP automatically. Whenvalidreturns false, the return value ofcurrentis undefined instead of false. #1506\Elastica\ResultSet::nextreturnsvoidinstead of\Elastica\Result|false\Elastica\Bulk\ResponseSet::currentreturns\Elastica\Bulk\Responseinstead of\Elastica\Bulk\Response|false\Elastica\Multi\ResultSet::currentreturns\Elastica\ResultSetinstead of\Elastica\ResultSet|false
Added
- Added a transport class for mocking a HTTP 403 error codes, useful for testing response failures in inheriting clients #1529
- Field param for
Elastica\Query\FunctionScore::addRandomScoreFunction#1529 - Index Recovery : the indices recovery API provides insight into on-going index shard recoveries. It was never been implemented into Elastica. #1537
- add parent_id (reference #1518) in QueryBuilder. #1533
- implemented
string_distanceoption in Term Suggestion #1543
Improvements
-
Using
Elastica\Query\FunctionScore::addRandomScoreFunctionwithout$fieldparameter is deprecated since ES 6.0 and will fail since ES 7.0 #1522 -
Aggreation\Percentilesupdated to a newer version of the Algorithm (T-Digest 3.2) and Percentiles results changed a bit Have a look at here, so updated tests in order not to fail. #1531 -
Aggregation\Percentileshave been updated since Elasticsearch 2.3. In this versioncompression, HDR histogramchanged their implementations. Themissingfield has never been implemented. #1532Before
"compression" : 200, "method" : "hdr", "number_of_significant_value_digits" : 3Now
"tdigest": { "compression" : 200 }, "hdr": { "number_of_significant_value_digits" : 3 } -
Never implemented the method Missing on
Aggregation\Percentiles#1532
- Made result sets adhere to
-
6.0.229 May 2018Release notes
Open source →Added
- Added support for pipeline when indexing document. #1455
- Added support for multiple bucket sort orders for aggregations. #1480
- Added basic support for the Elasticsearch Task Api
- Added updateByQuery endpoint. #1499
Improvements
-
6.0.118 Feb 2018Release notes
Open source →Bugfixes
- Characters "<" and ">" will be removed when a query term is passed to
Util::escapeTerm. Since v5.1 the documentation states that these symbols cannot be escaped ever. - Remove
each()usage to fix PHP 7.2 compatibility - Fix #1435 forcing
doc_as_upsertto be boolean, acording Elastic doc-update documentation - Fix #1456 set SSL as connection scheme if it is required
Added
- Added request parameters to
Client->deleteDocuments(). #1419 - Added request parameters to
Type->updateDocuments(),Type->addDocuments(),Type->addObjects(),Index->addDocuments(),Index->updateDocuments(). #1427 - Added avg_bucket() and sum_bucket() in aggregations PR#1443 - (https://github.com/ruflin/Elastica/issues/1279)
- Added support for terms lookup mechanism on terms query #1452
- Characters "<" and ">" will be removed when a query term is passed to
-
6.0.014 Nov 2017Release notes
Open source →Backward Compatibility Breaks
- Return the _source of inner hit nested as is without wrapping it into its full path context #1398
- Removed CrossIndex Class as from now use Reindex. #1411
Added
- Added clear() to
Scrollfor closing search context on ES manually - Added Elastica\Aggregation\StatsBucket
Improvements
- Clear search context on ES after usage in
Scroll
-
6.0.0-beta105 Oct 2017 pre-releaseRelease notes
Open source →Backward Compatibility Breaks
- Numeric to and from parameters in date_range aggregation are interpreted according to format of the target field
- In ES6 only strict type boolean are accepted. On ES6 docs
- removed analyzed/not_analyzed on indices mapping
- store field only accepts boolean
- Replace IndexAlreadyExistsException with ResourceAlreadyExistsException #1350
- in order to delete an index you should not delete by its alias now you should delete using the concrete index name #1348
- Removed
optimizefrom Index class as it has been deprecated in ES 2.1 and removed in ES 5.x+ use forcemerge #1351 - In QueryString is not allowed to use fields parameters in conjunction with default_field parameter. This is not well documented, it's possibile to understand from Elasticsearch tests : QueryStringQueryBuilderTests.java #1352
- Index mapping field of type 'string' has been removed from Elasticsearch 6.0 codebase #1353
- The created and found fields in index and delete responses became obsolete after the introduction of the result field in index, update and delete responses #1354
- Removed file scripts #24627 #1364
- Removed groovy script #1364
- Removed native script #1364
- Removed old / removed script language support : javascript, python, mvel #1364
- Disable _all by default, disallow configuring _all on 6.0+ indices #1365
- Unfiltered nested source should keep its full path #1366
- The deprecated minimum_number_should_match parameter in the bool query has been removed, use minimum_should_match instead. #1369
- For geo_distance queries, sorting, and aggregations the sloppy_arc option has been removed from the distance_type parameter. #1369
- The geo_distance_range query, which was deprecated in 5.0, has been removed. #1369
- The optimize_bbox parameter has been removed from geo_distance queries. #1369
- The disable_coord parameter of the bool and common_terms queries has been removed. If provided, it will be ignored and issue a deprecation warning. #1369
- Unfiltered nested source should keep its full path #1366
- Analyze Explain no more support request parameters, use request body instead. #1370
- Mapper Attachment plugin has been removed Use Ingest-attachment plugin and attachment processors with pipeline to ingest new documents. #1375
- Indices Query has been removed in Elasticsearch 6.0 #1376
- Remove deprecated type and slop field in match query #1382
- Remove several parse field deprecations in query builders #1382
- Remove deprecated parameters from ids_query #1382
- Implemented join-datatype is a special field that creates parent/child relation within documents of the same index. #1383
Bugfixes
- Enforce Content-Type requirement on the layer Rest, a PR on Elastica #1301 solved it (it has been implemented only in the HTTP Transport), but it was not implemented in the Guzzle Transport. #1349
- Scroll no longer does an extra iteration both on an empty result and on searches where the last page has a significantly smaller number of results than the pages before it.
Added
- Added
Query\SpanContaining,Query\SpanWithinandQuery\SpanNot#1319 - Implemented Pipeline and Processors. #1373
- In PHP 7.2 count() now raises a warning when an invalid parameter is passed. Only arrays and objects implementing the Countable interface should be passed. #1378
-
5.3.629 Aug 2019Nothing published for this version
-
5.3.528 Jan 2019Nothing published for this version
-
5.3.416 Jan 2019Nothing published for this version
-
5.3.316 Oct 2018Nothing published for this version
-
5.3.229 May 2018Nothing published for this version
-
5.3.118 Feb 2018Nothing published for this version
-
5.3.026 Jul 2017Release notes
Open source →Backward Compatibility Breaks
- Removed
Query\NumericRange, useQuery\Rangeinstead #1334
Bugfixes
- Send the
scroll_idinside a json body instead of plain text #1325
Added
- Removed
-
5.2.107 Jun 2017Release notes
Open source →Bugfixes
- Fix elastic 5.3.x deprecation warning related to Content-Type not being set.
- Fix updating settings of an index. #1296
- Remove
Elastica\Search::OPTION_SEARCH_TYPE_DFS_QUERY_AND_FETCHandElastica\Search::OPTION_SEARCH_TYPE_QUERY_AND_FETCHas no longer supported as of 5.3.0 - Fix bad parameter value to refresh document #1318
Added
- Parameter
filter_pathfor response filtering (e.g.$index->search($query, ['filter_path' => 'hits.hits._source'])) - Add support for Health parameters for Cluster\Health endpoint (new prop : delayed_unassigned_shards, number_of_pending_tasks, number_of_in_flight_fetch, task_max_waiting_in_queue_millis, active_shards_percent_as_number)
- Add support for querystring in Type. this allow to use
update_all_typesin type mapping in order to resolve conflicts between fields in different types. Conflicts between fields in different types - Added
\Elastica\Query\ParentIdto avoid join with parent documents #1287 - Added
\Elastica\Reindexfor reindexing between indices #1311
Improvements
- Added support for
other_bucketandother_bucket_keyparamters onElastica\Aggregation\Filters - Update elasticsearch testing dependency to 5.4.1
Deprecated
- Deprecated
Tool\CrossIndexuse\Elastica\Reindexinstead #1311
-
5.2.013 Apr 2017Release notes
Open source →Bugfixes
- Fix reading bool index settings like
\Elastica\Index\Settings::getBlocksWrite. Elasticsearch returns all settings as strings and does not normalize bool values. The getters now return the right bool value for whichever string representation is used like 'true', '1', 'on', 'yes'. #1251 - Fix for QueryBuilder version check
\Elastica\QueryBuilder\Version\Version240.phpadded all new query types to queries array. #1266 #1269 - Do not modify the original query in
\Elastica\Search::count. #1276
Added
- Added
\Elastica\Client::requestEndpoint,\Elastica\Index::requestEndpoint,\Elastica\Type::requestEndpointthat allow make requests with official client Endpoint usage. #1275 - Added
\Elastica\Aggregation\GeoBoundsthat computes the bounding box containing all geo_point values for a field. #1271 - Added
\Elastica\Query\MatchNonethe inverse of MatchAll. #1276
Improvements
- added support for the "explain" flag of AnalyzeAPI #1254
- added support for the "request_cache" search option #1243
- skip sending "retry_on_conflict=0" default query param to improve compatibility with Amazon Elasticsearch #1047
- optimized
\Elastica\Scrollto avoid one request #1273 - Update elasticsearch-php dependency to 5.2.0 #1245
- Update elasticsearch testing dependency to 5.2.2 #1245
Deprecated
- Deprecated
\Elastica\Exception\ElasticsearchExceptionwhich is irrelevant since Elasticsearch now exposes the errors as a structured array instead of a single string. Use\Elastica\Exception\ResponseException::getResponse::getFullErrorinstead. - Deprecated both
prefix_len&min_word_lenfields inElastica\Suggest\CandidateGenerator\DirectGeneratoras these now return errors when using the phrase suggester to querying terms. Useprefix_length&min_word_lengthinstead #1282 Use\Elastica\Exception\ResponseException::getResponse::getFullErrorinstead. #1251
- Fix reading bool index settings like
-
5.1.015 Feb 2017Release notes
Open source →Backward Compatibility Breaks
\Elastica\Script\AbstractScriptadded the script language as constructor argument and sub-classes must implementgetScriptTypeArray
Bugfixes
- Removed features that do not exist in Elasticsearch 5.0 anymore:
ttlandtimestamplogic: setters and getters in documents and mapping\Elastica\Query\Missing: negate\Elastica\Query\Existsinstead\Elastica\Query\TopChildren
\Elastica\Query\MatchPhraseand\Elastica\Query\MatchPhrasePrefixdo not extend\Elastica\Query\Matchanymore because they do not share exactly the same options- Removed the
routingoption in\Elastica\Index::createbecause there is no routing param when creating an index. So that option was doing nothing so far but fails in Elasticearch 5.0 because the non-existing query param is validated. - Fix
relationproperty of\Elastica\Query\GeoShapeProvided - repoint
\Elastica\Type::existsfrom the deprecated /{index}/{type} endpoint to /{index}/_mapping/{type}
Added
- added
\Elastica\Script\ScriptIdto reference stored scripts by ID - added
\Elastica\Query\AbstractGeoShape::RELATION_WITHIN - Date math in index names is now escaped in URI
- Added a check for paths that already have date math escaped
Improvements
\Elastica\Query\HasParentto useparent_typeinstead oftype. Fixes warning due to field being deprecated.
Deprecated
- Deprecated functionality that is also deprecated in Elasticsearch 5.0:
\Elastica\Client::optimizeAllin favor of\Elastica\Client::forcemergeAll\Elastica\Query\BoolQuery::setMinimumNumberShouldMatchin favor of\Elastica\Query\BoolQuery::setMinimumShouldMatch\Elastica\Query\GeoDistanceRange: use distance aggregations or sorting instead\Elastica\Query\GeohashCell\Elastica\Query\Indices: search on the_indexfield instead\Elastica\Query\Match::setFieldType: use\Elastica\Query\MatchPhraseand\Elastica\Query\MatchPhrasePrefixinstead
\Elastica\Transport\Nullis deprecated because null is a reserved class name in PHP 7. Use\Elastica\Transport\NullTransportinstead.
-
5.0.014 Dec 2016Release notes
Open source →Backward Compatibility Fixes
- Updated Elastica\Test\Suggest\CompletionTest now payload and output are removed
- Updated Elastica\Test\TypeTest::testGetDocumentWithFieldsSelection The stored_fields parameter will only return stored fields — it will no longer extract values from the _source
- remove _shutdown for Node and Cluster as deprecated
Bugfixes
- Query options such as "timeout" or "terminate_after" should not be ignored when using Multi\Search
Added
- Added regex option form suggest completions https://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters-completion.html#regex
Improvements
\Elastica\JSONthrows exception with readable message instead of errno\Elastica\JSON::stringifythrows\Elastica\Exception\JSONParseExceptionon error
-
5.0.0-beta109 Nov 2016 pre-releaseRelease notes
Open source →Backward Compatibility Breaks
- Update elasticsearch dependency to 5.0
- Replace flush refresh param with a options array
- Rename Mapping::setFields to Mapping::setStoredFields
- Removing all deprecated filters including tests. Use queries instead.
- Remove deprecated Elastica\Script*.php classes. Use Elastica\Script* instead.
- Remove Elastica/Query/Image.php and test/Elastica/Query/ImageTest.php, no more support for image-plugin.
- Remove Elastica/Query/Filtered.php and test/Elastica/Query/FilteredTest.php and all uses from code.
- Remove index.merge.policy.merge_factor, and set/get MergePolicy as it looks deprecated from ES 1.6
- Add new "Percolate query" functionality and tests
- Remove in Elastica\AbstractUpdateAction Option "percolate", getter and setter as deprecated as of ES 1.3. Use Percolator instead.
- Remove in Elastica\Aggregation\DateHistogram Option "pre_zone" is deprecated as of ES 1.5. Use "time_zone" instead
- Remove in Elastica\Aggregation\DateHistogram Option "post_zone" is deprecated as of ES 1.5. Use "time_zone" instead.
- Remove in Elastica\Aggregation\DateHistogram Option "pre_zone_adjust_large_interval" is deprecated as of ES 1.5. Use "time_zone" instead.
- Remove in Elastica\Aggregation\DateHistogram Option "pre_offset" is deprecated as of ES 1.5. Use "offset" instead.
- Remove in Elastica\Aggregation\DateHistogram Option "post_offset" is deprecated as of ES 1.5. Use "offset" instead.
- Remove Elastica\Document::add as deprecated. Use Elastica\Document::set instead
- Remove Elastica\Document::setScript() is no longer available as of 0.90.2. See http://elastica.io/migration/0.90.2/upsert.html to migrate.
- Remove Elastica\Document::getScript() is no longer available as of 0.90.2. See http://elastica.io/migration/0.90.2/upsert.html to migrate.
- Remove Elastica\Document::hasScript() is no longer available as of 0.90.2. See http://elastica.io/migration/0.90.2/upsert.html to migrate.
- Remove Elastica/Query::setLimit as deprecated. Use the Elastica/Query::setSize() method
- Remove Elastica\Query\Builder
- Remove Elastica\Query\Fuzzy::addField as deprecated. Use Elastica\Query\Fuzzy::setField and Elastica\Query\FuzzysetFieldOption instead.
- Remove Elastica\Query::setIds as deprecated. Use Elastica\Query::like instead.
- Remove Elastica\Query::setLikeText as deprecated. Use Elastica\Query::like instead.
- Remove Elastica\Query Option "percent_terms_to_match" is deprecated as of ES 1.5. Use "minimum_should_match" instead.
- Remove Elastica\QueryBuilder\DSL\Query "More Like This Field" query is deprecated as of ES 1.4. Use MoreLikeThis query instead.
- Changed visibility from protected to private Elastica\ResultSet::$_position as accessing this property in an extended class is deprecated.
- Changed visibility from protected to private Elastica\ResultSet::$_response as accessing this property in an extended class is deprecated.
- Changed visibility from protected to private Elastica\ResultSet::$_query as accessing this property in an extended class is deprecated.
- Changed visibility from protected to private Elastica\ResultSet::$_results as accessing this property in an extended class is deprecated.
- Removed Elastica\ResultSet::$_timedOut as deprecated. Use ResultSet->hasTimedOut() instead.
- Removed Elastica\ResultSet::$_took as deprecated. Use ResultSet->hasTimedOut() instead.
- Removed Elastica\ResultSet::$_totalHits as deprecated. Use ResultSet->hasTimedOut() instead.
- Removed Elastica\Type::delete() It is no longer possible to delete the mapping for a type. Instead you should delete the index and recreate it with the new mappings.
- Removed Elastica\Query\Builder as deprecated. Use new Elastica\QueryBuilder instead.
- Removed Elastica\Percolator as deprecated. Use new Elastica\Query\Percolate instead.
- Changed Elastica\Index::deleteByQuery() to use new API https://www.elastic.co/guide/en/elasticsearch/reference/5.0/docs-delete-by-query.html
- Remove Elastica\ScanAndScroll and test, Scan search type is removed from ElasticSearch 5.0.
- Remove support for PHP 5.4 and 5.5. Require at least PHP 5.6 #1202
- Remove groovy as default scripting language
- Remove search_type=count as it is removed in Elasticsearch 5.0
- Remove fielddata_fields as it has been deprecated in ES5, use parameter docvalue_fields instead
Added
- Elastica\QueryBuilder\DSL\Query::exists
- Elastica\QueryBuilder\DSL\Query::type
Improvements
- Add a constant for the expression language.
Health::getIndicesreturns key=>value result, where key === $indexName.
$cluster->getHealth()->getIndices()[$indexName] // or $indices = $cluster->getHealth()->getIndices(); $indices[$indexName]- Added a
Query::setTrackScoresmethod - Implemented painless as default scripting language in tests
- Updated Dockerfile and elasticsearch.yml to allow inline.script: true
- Updated some Script function to use groovy as now default scripting is painless
- Elastica\Test\Aggregation\ScriptTest::testAggregationScript
- Elastica\Test\Aggregation\ScriptTest::testAggregationScriptAsString
- Elastica\Test\Query\FunctionScoreTest::testScriptScore
- Elastica\Test\BulkTest::testUpdate
- Elastica\Test\ClientTest::testUpdateDocumentByScript
- Elastica\Test\ClientTest::testUpdateDocumentByScriptWithUpsert
- Elastica\Test\ClientTest::testUpdateDocumentPopulateFields
- Elastica\Test\ClientTest::testUpdateDocumentPopulateFields
- Elastica\Test\TypeTest::testUpdateDocument
- Elastica\Test\TypeTest::testUpdateDocumentWithIdForwardSlashes
- Elastica\Test\TypeTest::testUpdateDocumentWithParameter
- Elastica\Test\TypeTest::testUpdateDocumentWithFieldsSource
- Composer installations will no longer include tests and other development files.
-
3.2.428 Dec 2018Nothing published for this version
-
3.2.323 Sep 2016Release notes
Open source →Bugfixes
- Query builder is now compatible with Elasticsearch 2.X
Added
- Elastica\Aggregation\BucketScript
- Elastica\Aggregation\SerialDiff
- Elastica\Query\InnerHits
Improvements
- Elastica\Client constructor now accepts a transport of fully qualified name. #1169
- Update Elasticsearch dependency to 2.4.0
-
3.2.223 Aug 2016Release notes
Open source →Backward Compatibility Fixes
Bugfixes
- Set HTTP headers on each request preventing server error if persistent connection is enabled and compression enabled and later disabled for the same connection.
- Removed
inttype hinting insetMinimumMatch(TermsQuery): it should also allowstring. #1151
Added
- Elastica\QueryBuilder\DSL\Query::geo_distance
- Elastica\Aggregation\GeoCentroid #1150
- Multi value field param for decay function.
- Elastica\Client::getVersion #1152
- Added support for terminate_after parameter in search queries #1168
Improvements
- Set PHP 7.0 as default development version
- Get the root reason from Elasticsearch's error JSON, when available #1111
- Optimize memory usage for Http Adapter #1161
Changed
- Remove JSON_ELASTICSEARCH constant as not needed anymore
-
3.2.115 Jun 2016Release notes
Open source →Backward Compatibility Fixes
- Reintroduced properties in ResultSet removed in 3.2.0 as deprecated properties to be removed in 4.0
Bugfixes
- Fix fatal error on
Query::addScriptField()if scripts were already set viasetScriptFields()#1086 - Fix namespace collision of
TypeinQuery\Ids#1104
Added
- Added the concept of ResultSet Transformers. The Transformer adds more information to a Result, for example the original object or data that created the Result. #1066
- Tidied property initialisation in classes where it was duplicated
-
3.1.118 Mar 2016Release notes
Open source →Added
- Add an "AwsAuthV4" transport that automatically signs requests using credentials from the environment or from the client config. This allows using Elastica with Amazon ElasticSearch Service domains that are restricted to IAM roles or policies. #1056
- Update elasticsearch build dependency to elasticsearch 2.2.1
Improvements
Elastica\Exception\InvalidExceptionwill be thrown if you try using anElastica\Aggregation\AbstractSimpleAggregationwithout setting either thefieldorscriptparam.Elastica\Index->deleteByQuery($query, $options)$query param can be a queryarrayagainElastica\Query\MoreLikeThis->toArray()now supports providing a non-indexed document as an input to perform the comparison.Elastica\Statuswill lazy load the_statsat when it is needed. https://github.com/ruflin/Elastica/pull/1058
-
3.1.030 Jan 2016Release notes
Open source →Backward Compatibility Breaks
- Update Guzzle transport to use Guzzle 6
- Elastica\Query\FunctionScore::setFilter - deprecated and will throw DeprecatedException since not supported by Elasticsearch. Use setQuery instead.
Added
Elastica\Result->getDocumentandElastica\ResultSet->getDocumentsfor return\Elastica\Document. https://github.com/ruflin/Elastica/issues/960
Improvements
- Add username and password params to connection
Deprecated
- Elastica\AbstractScript|Script|ScriptFile|ScriptFields deprecated in favor of Elastica\Script|AbstractScript|Script|ScriptFile|ScriptFields #1028
- Elastica\Filter* are deprecated. You can use proper queries instead. Backward compatibility layer provided, but will be removed in next Elastica releases. See https://www.elastic.co/blog/better-query-execution-coming-elasticsearch-2-0 and https://github.com/ruflin/Elastica/issues/1001
-
3.0.105 Jan 2016 -
3.0.004 Jan 2016Release notes
Open source →Backward Compatibility Breaks
- Revert getError changes in Response object and make it better BC compatible. See comment here.
Bugfixes
- Function score query: corrected the
score_methodaveragetoavg#975 - Set
json_decode()assoc parameter to true inElastica\Response#1005 - Add
bigintConversionto keys passed to connection config inElastica\Client#1005 - Use POST instead of PUT to send bulk requests #1010
Added
- Elastica\Query\MultiMatch::setFuzziness now supports being set to
AUTOwith the constMultiMatch::FUZZINESS_AUTO - Elastica\Type\Mapping::send now accepts query string parameters to send along with the mapping request
- Elastica\Query\BoolQuery::addFilter
Improvements
- More info on Elastica\Exception\PartialShardFailureException. Not just number of failed shards.
- Allow bool in TopHits::setSource function #1012
Deprecated
- Elastica\Query\Filtered triggers E_USER_DEPRECATED error because filtered query is deprecated since ES 2.0.0-beta1. Use BoolQuery instead.
- Elastica\QueryBuilder\DSL\Query::filtered() triggers E_USER_DEPRECATED error because filtered query is deprecated since ES 2.0.0-beta1. Use bool() instead.
-
3.0.0-beta126 Nov 2015 pre-releaseRelease notes
Open source →Backward Compatibility Breaks
- Elastica\AbstractUpdateAction::setPercolate now throw DeprecatedException, user Percolator instead
- Elastica\AbstractUpdateAction::getPercolate now throw DeprecatedException, user Percolator instead
- Elastica\AbstractUpdateAction::hasPercolate now throw DeprecatedException, user Percolator instead
- Elastica\Type::delete now throw DeprecatedException, it is no longer possible to delete the mapping for a type. Instead you should delete the index and recreate it with the new mappings
- MoreLikeThis::setLikeText deprecated from ES 2.0, use setLike instead, but there is a difference - setLike haven't trim magic inside for strings
- Elastica\Document, methods: setScript, getScript, hasScript now throw DeprecatedException.
- MoreLikeThis, methods: setLikeText, setIds, setPercentTermsToMatch now throw DeprecatedException.
- Elastica\Aggregation\DateHistogram, methods: setPreZone, setPostZone, setPreZoneAdjustLargeInterval, setPreOffset, setPostOffset now throw DeprecatedException.
- Elastica\Query\Builder trigger E_USER_DEPRECATED error when you try use it.
- Elastica\Filter\Bool and Elastica\Query\Bool trigger E_USER_DEPRECATED error when you try use them.
- Elastica\Query\Fuzzy:addField method trigger E_USER_DEPRECATED error
- Elastica\Query\FunctionScore:addBoostFactorFunction method trigger E_USER_DEPRECATED error
- Elastica\Query:setLimit method trigger E_USER_DEPRECATED error
- Elastica\Document:add method trigger E_USER_DEPRECATED error
- Type::moreLikeThis API was removed from ES 2.0, use MoreLikeThis query instead
- Remove Thrift transport and everything related to it
- Remove Memcache transport and everything related to it
- Remove BulkUdp and everything related to it
- Remove Facets and everything related to it
- Remove ansible scripts for tests setup and Vagrantfile as not needed anymore. All is based on docker containers now
- Support for PHP 5.3 removed
- Elastica\Reponse::getError() now returns and array instead of a string
- Move function \Elastica\Index\Status::getAliases() and hasAlias(...) to \Elastica\Index::getAliases()
- Remove \Elastica\Index\Status object and related functions
- \Elastica\Query\FuzzyLikeThis remove as not supported anymore
- Remove \Elastica\Status::getServerStatus() as the information was removed
- DeleteByQuery now requires the delete-by-query plugin isntalled
- Remove \Elastica\Filter\Nested as it is replaced by \Elastica\Query\Nested
- Require at least PHP 5.4
Bugfixes
- Fixed GeoShapeProvided relation parameter position
Added
- Elastica\Reponse::getErrorMessage was added as getError is now an object
- Elastica\Query\MoreLikeThis::setLike
- \Elastica\Exception\DeprecatedException
- Connection option to convert JSON bigint results to strings can now be set #717
Improvements
- Travis builds were moved to docker-compose setup. Ansible scripts and Vagrant files were removed
- trigger_error with E_USER_DEPRECATE added to deprecated places
- DeprecatedException will be thrown, if there is a call of method that not support BC
Deprecated
- Elastica\Type::delete is deprecated
- Elastica\Filter\Bool is deprecated
- Elastica\Query\Bool is deprecated
- Elastica\Query\MoreLikeThis::setLikeText is deprecated
- Elastica\Query\MoreLikeThis::setIds is deprecated
-
2.3.311 Jan 2019Nothing published for this version
-
2.3.230 Oct 2018Nothing published for this version
-
2.3.119 Oct 2015Release notes
Open source →Bugfixes
- Filters aggregation: empty name is named bucket #935
- Prevent mix keys in filters (#936) #939
- Fix empty string is not anonymous filter #935
- Filters aggregation: empty name is named bucket #935
Added
- Support for field_value_factor #953
- Added setMinDocCount and setExtendedBounds options #947
- Avoid environment dependecies in tests #938
Improvements
- Update elasticsearch dependency to elasticsearch 1.7.3 #957
Deprecated
- Added exceptions of deprecated transports to deprecation list
-
2.3.015 Sep 2015Release notes
Open source →Backward Compatibility Breaks
- Objects do not casts to arrays in setters and saved in params as objects. There is many side effects if you work with params on "low-level" or change your objects after you call setter with object as argument. #916
Added
Improvements
-
2.2.110 Aug 2015Release notes
Open source →Added
- Support for index template added #905
Improvements
- Update Elasticsearch dependency to 1.7.1 and update plugin dependencies #909
- Update php-cs-fixer to 1.10 #898
- Elastica\QueryBuilder now uses Elastica\QueryBuilder\Version\Latest as default version to avoid empty version classes. #897
- Update elasticsearch-image to work with ES 1.7.1 #907
- Local dev environment was refactored to fully work in docker environment. Running tests is now only one command:
make tests#901
Deprecated
- Elastica\QueryBuilder\Version\Version150 deprecated in favor of Elastica\QueryBuilder\Version\Latest #897
-
2.2.008 Jul 2015Release notes
Open source →Backward Compatibility Breaks
- Usage of constant DEBUG and method Elastica\Util::debugEnabled is removed. #868
- Elastica\Response::getTransferInfo will not return "request_header" by default. #868
- The Image Plugin is currently not compatible with Elasticearch 1.6.0
Bugfixes
Improvements
CallbackStrategynow will accept anycallableas callback, not only instance ofClosure. #871StrategyFactorynow will try to find predefined strategy before looking to global namespace. #877- Update elasticsearch dependency to elasticsearch 1.6.0 https://www.elastic.co/downloads/past-releases/elasticsearch-1-6-0
- All elasticsearch plugin dependencies were updated to the newest version.
- Methods of classes in
QueryBuilder\DSLnamespace now have exact same signatures as corresponding constructors. #878 - Constructor of
Aggregation\Filternow accepts filter as second parameter #878 - Constructor of
Filter\AbstractMulti(BoolAnd,BooldOr) now accepts array of filters as parameter #878 - Constructor of
Query\Matchnow accepts arguments #878 - Coverage Reporting improved with Codecov #888
- Added 'query_cache' option for search #886
-
2.1.001 Jun 2015Release notes
Open source →Added
- Multiple rescore query #820
- Support for a custom connection timeout through a connectTimeout parameter. #841
- SignificantTerms Aggregation #847
- Support for 'precision_threshold' and 'rehash' options for the Cardinality Aggregation [#851]
- Support for retrieving id node #852
- Scroll Iterator #842
- Gitter Elastica Chat Room add for Elastica discussions: https://gitter.im/ruflin/Elastica
- Introduce PHP7 compatibility and tests. #837
Tool\CrossIndexfor reindexing and copying data and mapping between indices #853- CONTIRUBTING.md file added for contributor guidelines. #854
Improvements
- Introduction of Changelog standard based on http://keepachangelog.com/. changes.txt moved to CHANGELOG.md #844
- Make host for all tests dynamic to prepare it for a more dynamic test environment #846
- Node information is retrieved based on id instead of name as multiple nodes can have the same name. #852
- Guzzle Http dependency updated to 5.3.*
- Remove NO_DEV builds from travis build matrix to speed up building. All builds include no dev packages.
- Introduction of benchmark test group to make it easy to run benchmark tests.
- Make the docker images directly available on the docker registry. This speeds up fetching of the images and automates the build of the images.
Backward Compatibility Breaks
Elastica\ScanAndScroll::$_lastScrollIdremoved:key()now always returns the next scroll id #842
Deprecated
- Facets are deprecated. You are encouraged to migrate to aggregations instead. #855
- Elastica\Query\Builder is deprecated. Use new Elastica\QueryBuilder instead. #855
- For PHP 7 compatibility Elastica\Query\Bool was renamed to *\BoolQuery, Elastica\Filter\Bool was renamed to BoolFilter, Elastica\Transport\Null was renamed to NullTransport as Null and Bool are reserved phrases in PHP 7. Proxy objects for all three exist to keep backward compatibility. It is recommended to start using the new objects as the proxy classes will be deprecated as soon as PHP 7 is stable. #837