1# Changelog 2All notable changes to this project will be documented in this file. 3 4The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), 5and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). 6 7## [Unreleased](https://github.com/ruflin/Elastica/compare/7.3.1...master) 8 9### Backward Compatibility Breaks 10### Added 11### Changed 12### Deprecated 13### Removed 14### Fixed 15### Security 16 17 18## [7.3.1](https://github.com/ruflin/Elastica/compare/7.3.0...7.3.1) 19 20### Added 21* Added missing `@throws` annotations to Client::request and related methods [#2153](https://github.com/ruflin/Elastica/pull/2153) 22 23### Deprecated 24* Deprecated not passing a `buckets_path` and `script` when constructing `Elastica\Aggregation\BucketScript` and `Elastica\Aggregation\BucketSelector` 25 26### Fixed 27* Fix types order in `Elastica\Query` to work with psalm & expand the `aggs` type to include raw arrays 28 29## [7.3.0](https://github.com/ruflin/Elastica/compare/7.3.0...7.2.0) 30### Changed 31* Use `ramsey/composer-install` to simplify CI jobs and test with the lowest set of dependencies [#2113](https://github.com/ruflin/Elastica/pull/2113) 32* Bumped `elasticsearch/elasticsearch` to `7.10` to be able to use `OpenPointInTime` class [#2113](https://github.com/ruflin/Elastica/pull/2113) 33* Updated `php-cs-fixer` to `3.9.5` [#2110](https://github.com/ruflin/Elastica/pull/2110) 34* Changed `Elastica\Index\Settings::get` adding ability to get default settings by @krasilnikovm [#2115](https://github.com/ruflin/Elastica/pull/2115) 35* Update `AWSAuthV4 transport` to sanitize host name for AWS requests before signing [#2090](https://github.com/ruflin/Elastica/pull/2090) 36* New method `Elastica\Aggregation\Terms::setMissingBucket`. For Composite Agg. Include in the response documents without a value for a given source. [#2117](https://github.com/ruflin/Elastica/pull/2117) 37* Increased `PHPStan` level to `5` by @franmomu [#2108](https://github.com/ruflin/Elastica/pull/2108) 38### Removed 39* Removed `CallbackStrategyTestHelper` and `ErrorsCollector` from `tests` [#2111](https://github.com/ruflin/Elastica/pull/2111) 40### Fixed 41* Fixed `Query/Terms` terms phpdoc from `array<bool|float|int|string>` to `list<bool|float|int|string>` [#2118](https://github.com/ruflin/Elastica/pull/2118) 42* Fixed `Response` to prevent throwing JSONParseException when the response is empty. 43 44## [7.2.0](https://github.com/ruflin/Elastica/compare/7.2.0...7.1.5) 45### Backward Compatibility Breaks 46* Changed `SetProcessor::setValue` signature to allow to pass any type, if you are overriding this method you must update the signature removing the `string` type-hint by @franmomu [#2082](https://github.com/ruflin/Elastica/pull/2082) 47* Changed `Settings::setMergePolicy` signature to allow to pass `int` and `string` as argument 2, if you are overriding this method you must update the signature removing the `string` type-hint by @franmomu [#2085](https://github.com/ruflin/Elastica/pull/2085) 48### Added 49* Added `PHPStan` at level 3 by @franmomu [#2064](https://github.com/ruflin/Elastica/pull/2064) 50* Added coverage check to CI by @franmomu [#2071](https://github.com/ruflin/Elastica/pull/2071) 51* Added `string` as a valid type for `data` in `Request` by @franmomu [#2078](https://github.com/ruflin/Elastica/pull/2078) 52* Added missing `throws` PHPDoc tags by @franmomu [#2077](https://github.com/ruflin/Elastica/pull/2077) 53* Added `Search::addIndexByName()`, `Search::hasIndexByName()` and `Search::addIndicesByName()` by @franmomu [#2103](https://github.com/ruflin/Elastica/pull/2103) 54### Changed 55* Updated `symfony/phpunit-bridge` to `6.0` by @franmomu [#2067](https://github.com/ruflin/Elastica/pull/2067) 56* Updated `php-cs-fixer` to `3.8.0` [#2074](https://github.com/ruflin/Elastica/pull/2074) 57* Updated `composer-normalize` to `2.2.28` by @deguif [#2084](https://github.com/ruflin/Elastica/pull/2084) 58* Increased `PHPStan` level to `4` [#2080](https://github.com/ruflin/Elastica/pull/2080) 59* `ExceptionInterface` extends `Throwable` [#2083](https://github.com/ruflin/Elastica/pull/2083) 60* Changed `value` in `SetProcessor` to accept `mixed` instead of `string` by @franmomu [#2082](https://github.com/ruflin/Elastica/pull/2082) 61* Updated `Query::create` PHPDoc to include supported types and propagate it to callers by @franmomu [#2088](https://github.com/ruflin/Elastica/pull/2088) 62* Update some iterable types in PHPDoc to be more specific by @franmomu [#2092](https://github.com/ruflin/Elastica/pull/2092) 63* Updated `AwsAuthV4Test` adding assertions for exception type by @franmomu [#2094](https://github.com/ruflin/Elastica/pull/2094) 64### Deprecated 65* Deprecated `Elastica\Reindex::WAIT_FOR_COMPLETION_FALSE`, use a boolean as parameter instead by @franmomu [#2070](https://github.com/ruflin/Elastica/pull/2070) 66* Passing anything else than a boolean as 1st argument to `Reindex::setWaitForCompletion`, pass a boolean instead by @franmomu [#2070](https://github.com/ruflin/Elastica/pull/2070) 67* Deprecated passing a `string` as 1st argument to `Search::addIndex()` and `Search::hasIndex()`, pass an Index instance instead by @franmomu [#2103](https://github.com/ruflin/Elastica/pull/2103) 68* Deprecated passing an array of `string` as 1st argument to `Search::addIndices()`, use an array of Index instances by @franmomu [#2103](https://github.com/ruflin/Elastica/pull/2103) 69 70### Removed 71* Removed `egeloen/http-adapter` as suggested package since the project is abandoned by @franmomu [#2069](https://github.com/ruflin/Elastica/pull/2069) 72* Removed `0` as valid request data using Analyze API by @franmomu [#2068](https://github.com/ruflin/Elastica/pull/2068) 73* Removed dead code in `AwsAuthV4Test` by @franmomu [#2073](https://github.com/ruflin/Elastica/pull/2073) 74### Fixed 75* Fixed some PHPDoc types adding `null` as possible value by @franmomu [#2070](https://github.com/ruflin/Elastica/pull/2070) and [#2087](https://github.com/ruflin/Elastica/pull/2087) 76* Fixed passing wrong types to `GapPolicyInterface::setGapPolicy()`, `Document::setDocAsUpsert()` and `Connection::setPort()` methods by @franmomu [#2081](https://github.com/ruflin/Elastica/pull/2081) 77* Fixed `Http` PHPDoc adding `\CurlHandle` type for Curl connection by @franmomu [#2086](https://github.com/ruflin/Elastica/pull/2086) 78* Fixed case mismatch in method calls by @franmomu [#2087](https://github.com/ruflin/Elastica/pull/2087) 79* Fixed `MoreLikeThis::setLike()` PHPDoc allowing `Document` by @franmomu [#2091](https://github.com/ruflin/Elastica/pull/2091) 80* Fixed `Term::setTerm()` PHPDoc allowing scalar values for `$value` parameter by @franmomu [#2094](https://github.com/ruflin/Elastica/pull/2094) 81* Fixed `DateHistogram` deprecation: use `fixed_interval` or `calendar_interval` instead of `interval` by @VincentLanglet [#2099](https://github.com/ruflin/Elastica/pull/2099) 82 83## [7.1.5](https://github.com/ruflin/Elastica/compare/7.1.5...7.1.4) 84### Added 85* Added explicit return annotation to `Elastica\Multi\ResultSet::current()` and `Elastica\Multi\ResultSet::offsetGet()` by @franmomu [2056](https://github.com/ruflin/Elastica/pull/2056) 86* Add throwing `\Elastica\Exception\RequestEntityTooLargeException` on HTTP-413 responses in `\Elastica\Bulk` by @Vetaxon [2055](https://github.com/ruflin/Elastica/pull/2055) 87 88## [7.1.4](https://github.com/ruflin/Elastica/compare/7.1.4...7.1.3) 89### Added 90* Added support for `symfony/deprecation-contracts` 3.0 by @rguennichi [#2047](https://github.com/ruflin/Elastica/pull/2047) 91* Added aggregation `auto_date_histogram` @andriinavrotskii [#2051](https://github.com/ruflin/Elastica/pull/2051) 92### Fixed 93* Fixed version parameters for DeleteDocument by @pheyse24 [#2048](https://github.com/ruflin/Elastica/pull/2048) 94* Fixed version parameters for Index::addDocument() by @pidera [#2050](https://github.com/ruflin/Elastica/pull/2050) 95 96## [7.1.3](https://github.com/ruflin/Elastica/compare/7.1.2...7.1.3) 97### Added 98* Added support for scripted upsert on bulk requests by @dsgrillo [#1974](https://github.com/ruflin/Elastica/pull/1974) 99* Added `Elastica\Aggregation\CumulativeSum` by @limenet [#1987](https://github.com/ruflin/Elastica/pull/1987) 100* Added `ignore_failure` option to suitable ingest processors by @deguif [#2003](https://github.com/ruflin/Elastica/pull/2003) 101* Added `ignore_missing` option to `lowercase`, `remove`, `trim` and `uppercase` processors by @deguif [#2001](https://github.com/ruflin/Elastica/pull/2001) 102* Added `allow_duplicates` option to `append` processor by @deguif [#2004](https://github.com/ruflin/Elastica/pull/2004) 103* Added `bytes` processor by @deguif [#2008](https://github.com/ruflin/Elastica/pull/2008) 104* Added `indices_boost` option to `Elastica\Query` by @deguif [#2018](https://github.com/ruflin/Elastica/pull/2018) 105* Added `Elastica\Query\Terms::setBoost()` method to configure boost by @deguif [#2035](https://github.com/ruflin/Elastica/pull/2035) 106* Added `Elastica\Query\TermsSet` query by @mamchyts [#2020](https://github.com/ruflin/Elastica/pull/2020) 107* Added `terms_set` in query builder by @deguif [#2036](https://github.com/ruflin/Elastica/pull/2036) 108* Added `Elastica\Aggregation\Traits\BucketsPathTrait` to configure `buckets_path` on aggregations by @deguif 109 [#2037](https://github.com/ruflin/Elastica/pull/2037) 110 [#2039](https://github.com/ruflin/Elastica/pull/2039) 111* Allowed to configure a sub key when adding a param with `Elastica\Param::addParam()` by @deguif [#2030](https://github.com/ruflin/Elastica/pull/2030) 112### Changed 113* Triggered deprecation in `Elastica\Result::getType()` method by @deguif [#2016](https://github.com/ruflin/Elastica/pull/2016) 114* Updated `php-cs-fixer` to `3.3.2` by @deguif [#2022](https://github.com/ruflin/Elastica/pull/2022) 115* Updated `composer-normalize` to `2.15.0` by @deguif [#2021](https://github.com/ruflin/Elastica/pull/2021) 116* Updated `elasticsearch` test version to `7.15.2` by @deguif [#2027](https://github.com/ruflin/Elastica/pull/2027) 117* Extracted setting gap policy to `\Elastica\Aggregation\Traits\GapPolicyTrait` and introduced `\Elastica\Aggregation\GapPolicyInterface` with constants for options by @stchr [#2023](https://github.com/ruflin/Elastica/pull/2023) 118* Extracted setting `field` to `Elastica\Processor\Traits\FieldTrait` by @deguif [#2024](https://github.com/ruflin/Elastica/pull/2024) 119* Extracted setting `target_field` to `Elastica\Processor\Traits\TargetFieldTrait` by @deguif [#2026](https://github.com/ruflin/Elastica/pull/2026) 120* Simplified github action matrix for continuous integration workflow by @deguif [#2025](https://github.com/ruflin/Elastica/pull/2025) 121### Deprecated 122* Deprecated `Elastica\Query\Common` class, use `Elastica\Query\MatchQuery` instead by @deguif [#2013](https://github.com/ruflin/Elastica/pull/2013) 123* Deprecated `Elastica\QueryBuilder\DSL\Query::common_terms()`, use `match()` instead by @deguif [#2013](https://github.com/ruflin/Elastica/pull/2013) 124* Deprecated passing an `int` as 1st argument to `Elastica\Search::setOptionsAndQuery()`, pass an array with the key `size` instead by @deguif [#2010](https://github.com/ruflin/Elastica/pull/2010) 125* Deprecated `cutoff_frequency` option of `Elastica\Query\MatchQuery` by @deguif [#2014](https://github.com/ruflin/Elastica/pull/2014) 126* Deprecated `cutoff_frequency` option of `Elastica\Query\MultiMatch` by @deguif [#2015](https://github.com/ruflin/Elastica/pull/2015) 127* Deprecated `Elastica\Bulk::toString()`, `Elastica\Bulk\Action::toString()` and `Elastica\Request::toString()` methods, use `__toString()` method or cast to string instead by @deguif [#2033](https://github.com/ruflin/Elastica/pull/2033) 128* Deprecated not passing a `buckets_path` when constructing `Elastica\Aggregation\AvgBucket`, `Elastica\Aggregation\Derivative`, `Elastica\Aggregation\NormalizeAggregation`, `Elastica\Aggregation\PercentilesBucket`, `Elastica\Aggregation\SerialDiff`, `Elastica\Aggregation\StatsBucket` and `Elastica\Aggregation\SumBucket` by @deguif [#2038](https://github.com/ruflin/Elastica/pull/2038) 129* Deprecated not passing a `method` when constructing `Elastica\Aggregation\NormalizeAggregation` by @deguif [#2040](https://github.com/ruflin/Elastica/pull/2040) 130### Removed 131* Removed remaining `_type` field usages by @deguif [#2017](https://github.com/ruflin/Elastica/pull/2017) 132* Removed `Elastica\Bulk::$_type` dead property by @deguif [#2034](https://github.com/ruflin/Elastica/pull/2034) 133* Removed Elasticsearch old version checks in tests by @deguif [#2041](https://github.com/ruflin/Elastica/pull/2041) 134### Fixed 135* Fixed type-hint for `Elastica\Search::setOptionsAndQuery()` by @deguif [#2009](https://github.com/ruflin/Elastica/pull/2009) 136* Fixed terms query params resolution by @deguif [#2032](https://github.com/ruflin/Elastica/pull/2032) 137 138## [7.1.2](https://github.com/ruflin/Elastica/compare/7.1.1...7.1.2) 139### Backward Compatibility Breaks 140* Changed `Elastica\Exception\JSONParseException` inheritance, it now extends `\JsonException` instead of `\RuntimeException` [#1949](https://github.com/ruflin/Elastica/pull/1949) 141### Added 142* Added `Elastica\Aggregation\NormalizeAggregation` [#1956](https://github.com/ruflin/Elastica/pull/1956) 143* Added `Elastica\Suggest\Phrase::addDirectGenerator` to align with ES specification [#1964](https://github.com/ruflin/Elastica/pull/1964) 144* Added support for `psr/log` 2.0 and 3.0 [#1971](https://github.com/ruflin/Elastica/pull/1971) 145* Added new optional 'case_insensitive' option to `Elastica\Query\Wildcard` [#1894](https://github.com/ruflin/Elastica/pull/1894) 146* Added `Elastica\Result::getSort()` fetching the "sort" property of results [#1979](https://github.com/ruflin/Elastica/pull/1979) 147* Added exposure of Point-In-Time ID for search responses in `Elastica\ResultSet::getPointInTimeId()` [#1991](https://github.com/ruflin/Elastica/pull/1991) 148* Added `Elastica\Index::openPointInTime()` for opening a PiT on the index [#1994](https://github.com/ruflin/Elastica/pull/1994) 149* Added possibility to specify PointInTime on `Elastica\Query::setPointInTime()` [#1992](https://github.com/ruflin/Elastica/pull/1992) 150* Added `Elastica\Client::closePointInTime()` for closing a PiT [#1995](https://github.com/ruflin/Elastica/pull/1995) 151### Changed 152* Updated `php-cs-fixer` to `3.2.1` 153 [#1996](https://github.com/ruflin/Elastica/pull/1996) 154 [#1959](https://github.com/ruflin/Elastica/pull/1959) 155 [#1955](https://github.com/ruflin/Elastica/pull/1955) 156* Using default Elasticsearch images for testing instead of OSS https://github.com/ruflin/Elastica/pull/1954 157### Fixed 158* Fixed compatibility with `guzzlehttp/psr7` version `2.x` [#2002](https://github.com/ruflin/Elastica/pull/2002) 159* Fixed the assignment of `version`, `seq_no` and `primary_term` on `getDocument` [#1973](https://github.com/ruflin/Elastica/pull/1973) 160 161## [7.1.1](https://github.com/ruflin/Elastica/compare/7.1.0...7.1.1) 162### Backward Compatibility Breaks 163* Changed `Elastica\Query\MatchQuery::setFieldParam()` signature to allow passing bool, float or int [#1941](https://github.com/ruflin/Elastica/pull/1941) 164* Changed `Elastica\Query\MatchPhraseQuery::setFieldParam()` signature to allow passing bool, float or int [#1944](https://github.com/ruflin/Elastica/pull/1944) 165### Added 166* Excluded `docker` directory in `.gitattributes` [#1938](https://github.com/ruflin/Elastica/pull/1938) 167### Changed 168* Included `Content-Type` HTTP header every time, whatever the content of the body is [#1780](https://github.com/ruflin/Elastica/pull/1780) 169* Changed `Elastica\Status::indexExists()`, `Elastica\Status::aliasExists()` and `Elastica\Status::getIndicesWithAlias()` signatures [#1929](https://github.com/ruflin/Elastica/pull/1929) 170* Replaced `call_user_func()` and `call_user_func_array()` by direct calls [#1923](https://github.com/ruflin/Elastica/pull/1923) 171* Replaced legacy constant `CURLINFO_HTTP_CODE` by `CURLINFO_RESPONSE_CODE` [#1931](https://github.com/ruflin/Elastica/pull/1931) 172* Updated `php-cs-fixer` to `2.18.3` [#1915](https://github.com/ruflin/Elastica/pull/1915) 173* Updated `composer-normalize` to `2.13.3` [#1927](https://github.com/ruflin/Elastica/pull/1927) 174### Deprecated 175* Deprecated `Elastica\Transport\HttpAdapter` class [#1940](https://github.com/ruflin/Elastica/pull/1940) 176* Deprecated `Elastica\Exception\JSONParseException` exception, catch `\JsonException` instead [#1949](https://github.com/ruflin/Elastica/pull/1949) 177### Fixed 178* Fixed wrong `ltrim` usage in guzzle transport [#1783](https://github.com/ruflin/Elastica/pull/1783) 179* Fixed `_seq_no` and `_primary_term` wrong initialization [#1920](https://github.com/ruflin/Elastica/pull/1920) 180* Fixed `Elastica\Connection\StrategyInterface` instance checks [#1921](https://github.com/ruflin/Elastica/pull/1921) 181* Fixed various PHPDoc annotations [#1922](https://github.com/ruflin/Elastica/pull/1922) 182* Fixed numeric index names are returned as `int` in `Elastica\Status::getIndexNames()` [#1928](https://github.com/ruflin/Elastica/pull/1928) 183* Fixed using raw array in `post_filter` [#1950](https://github.com/ruflin/Elastica/pull/1950) 184 185## [7.1.0](https://github.com/ruflin/Elastica/compare/7.0.0...7.1.0) 186### Backward Compatibility Breaks 187* Added a default value to `Elastica\Aggregation\Range::setKeyed()` and `Elastica\Aggregation\PercentilesBucket::setKeyed()` [#1876](https://github.com/ruflin/Elastica/pull/1876) 188* Removed type-hint to `Elastica\Aggregation\Percentiles::setMissing()` argument [#1875](https://github.com/ruflin/Elastica/pull/1875) 189* Allowed the Terms query to accept an array of bool, float, int and/or string [#1872](https://github.com/ruflin/Elastica/pull/1872) 190### Added 191* Added `auth_type` parameter in the client class config to specify the type of authentication (allowed values are `basic, digest, gssnegotiate, ntlm`) [#1790](https://github.com/ruflin/Elastica/pull/1790) 192* Added `if_seq_no` / `if_primary_term` to replace `version` for [optimistic concurrency control](https://www.elastic.co/guide/en/elasticsearch/reference/7.x/optimistic-concurrency-control.html) [#1803](https://github.com/ruflin/Elastica/pull/1803) 193* Added `Elastica\Aggregation\PercentilesBucket` aggregation [#1806](https://github.com/ruflin/Elastica/pull/1806) 194* Added `weighted_avg` to aggregations DSL [#1814](https://github.com/ruflin/Elastica/pull/1814) 195* 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](https://github.com/ruflin/Elastica/pull/1808) 196* Added `Elastica\Aggregation\Composite` aggregation [#1804](https://github.com/ruflin/Elastica/pull/1804) 197* Added `symfony/deprecation-contracts` package to handle deprecations [#1823](https://github.com/ruflin/Elastica/pull/1823) 198* Added `list_syntax` CS rule [#1854](https://github.com/ruflin/Elastica/pull/1854) 199* Added `native_constant_invocation` CS rule [#1833](https://github.com/ruflin/Elastica/pull/1833) 200* Added `static_lambda` CS rule [#1870](https://github.com/ruflin/Elastica/pull/1870) 201* Added `Elastica\Aggregation\DateRange::setTimezone()` [#1847](https://github.com/ruflin/Elastica/pull/1847) 202* Added endpoint options support to `Elastica\Index::create()` [#1859](https://github.com/ruflin/Elastica/pull/1859) 203* Added `Elastica\Aggregation\DateHistogram::setKeyed()` [#1876](https://github.com/ruflin/Elastica/pull/1876) 204* Added `Elastica\Aggregation\GeoDistance::setKeyed()` [#1876](https://github.com/ruflin/Elastica/pull/1876) 205* Added `Elastica\Aggregation\Histogram::setKeyed()` [#1876](https://github.com/ruflin/Elastica/pull/1876) 206* Added `Elastica\Aggregation\IpRange::setKeyed()` [#1876](https://github.com/ruflin/Elastica/pull/1876) 207* Added `Elastica\Aggregation\GeotileGridAggregation` [#1880](https://github.com/ruflin/Elastica/pull/1880) 208* 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](https://github.com/ruflin/Elastica/pull/1876) 209* Supported `guzzlehttp/guzzle` 7.x [#1816](https://github.com/ruflin/Elastica/pull/1816) 210* Supported PHP 8.0 [#1794](https://github.com/ruflin/Elastica/pull/1794) 211* Supported BC break on `elasticsearch/elasticsearch` version `7.4.0` [#1864](https://github.com/ruflin/Elastica/pull/1864) 212### Changed 213* Allowed `string` such as `wait_for` to be passed to `AbstractUpdateAction::setRefresh` [#1791](https://github.com/ruflin/Elastica/pull/1791) 214* Allowed float values for connection timeout and connection connect-timeout, providing ms precision for those. Previous precision was second. [#1868](https://github.com/ruflin/Elastica/pull/1868) 215* Changed the return type of `AbstractUpdateAction::getRefresh` to `boolean|string` [#1791](https://github.com/ruflin/Elastica/pull/1791) 216* Reviewed options handling in `Elastica\Index::create()` [#1822](https://github.com/ruflin/Elastica/pull/1822) 217* Replaced deprecated `exceptions` request option by `http_errors` request option in Guzzle transport [#1817](https://github.com/ruflin/Elastica/pull/1817) 218* Run coding styles check on github action [#1878](https://github.com/ruflin/Elastica/pull/1878) 219* Run unit tests on github action [#1882](https://github.com/ruflin/Elastica/pull/1882) 220* Run functional tests on github action [#1885](https://github.com/ruflin/Elastica/pull/1885) 221* Updated `php-cs-fixer` to `2.16.4` [#1830](https://github.com/ruflin/Elastica/pull/1830) 222* Updated `php-cs-fixer` to `2.16.7` [#1881](https://github.com/ruflin/Elastica/pull/1881) 223* Updated `php-cs-fixer` to `2.17.3` [#1895](https://github.com/ruflin/Elastica/pull/1895) 224* Updated `php-cs-fixer` to `2.18.2` [#1897](https://github.com/ruflin/Elastica/pull/1897) 225* Used `GuzzleHttp\RequestOptions` constants for configuring request options [#1820](https://github.com/ruflin/Elastica/pull/1820) 226* Used new alias endpoints classes [#1839](https://github.com/ruflin/Elastica/pull/1839) 227* Used new cache endpoints classes [#1840](https://github.com/ruflin/Elastica/pull/1840) 228* Used new ingest pipeline endpoints classes [#1834](https://github.com/ruflin/Elastica/pull/1834) 229* Used new mapping endpoints classes [#1845](https://github.com/ruflin/Elastica/pull/1845) 230* Used new nodes endpoints classes [#1863](https://github.com/ruflin/Elastica/pull/1863) 231* Used new settings endpoints classes [#1852](https://github.com/ruflin/Elastica/pull/1852) 232### Deprecated 233* Deprecated `Elastica\Aggregation\Range::setKeyedResponse()`, use `setKeyed()` instead [#1848](https://github.com/ruflin/Elastica/pull/1848) 234* Deprecated `Elastica\Exception\ResponseException::getElasticsearchException()`, use `getResponse()::getFullError()` instead [#1829](https://github.com/ruflin/Elastica/pull/1829) 235* Deprecated `Elastica\QueryBuilder\DSL\Aggregation::global_agg()`, use `global()` instead [#1826](https://github.com/ruflin/Elastica/pull/1826) 236* Deprecated `Elastica\Util::getParamName()` [#1832](https://github.com/ruflin/Elastica/pull/1832) 237* Deprecated all Processor class names in favor of suffixed class names [#1893](https://github.com/ruflin/Elastica/pull/1893) 238* Deprecated Match query class and introduced MatchQuery instead for PHP 8.0 compatibility reason [#1799](https://github.com/ruflin/Elastica/pull/1799) 239* Deprecated `version`/`version_type` options [(deprecated in `6.7.0`)](https://www.elastic.co/guide/en/elasticsearch/reference/6.8/docs-update.html) and added `if_seq_no` / `if_primary_term` that replaced it 240* Deprecated passing `bool` or `null` as 2nd argument to `Elastica\Index::create()` [#1828](https://github.com/ruflin/Elastica/pull/1828) 241### Removed 242* Removed HHVM proxy detection [#1818](https://github.com/ruflin/Elastica/pull/1818) 243### Fixed 244* Fixed issue [1789](https://github.com/ruflin/Elastica/issues/1789) 245* Fixed type-hint for `Elastica\QueryBuilder\DSL\Aggregation::sampler()` not consistent with the underlying constructor call [#1815](https://github.com/ruflin/Elastica/pull/1815) 246* Fixed `Elastica\Util::toSnakeCase()` with first letter being lower cased [#1831](https://github.com/ruflin/Elastica/pull/1831) 247* Fixed handling precision as string in `Elastica\Aggregation\GeohashGrid::setPrecision()` [#1884](https://github.com/ruflin/Elastica/pull/1884) 248* Fixed calling `Elastica\Aggregation\Composite::addAfter()` with the `null` value [1877](https://github.com/ruflin/Elastica/pull/1877) 249* Replaced `_routing` and `_retry_on_conflict` by `routing` and `retry_on_conflict` in `AbstractUpdateAction` [#1807](https://github.com/ruflin/Elastica/issues/1807) 250 251 252## [7.0.0](https://github.com/ruflin/Elastica/compare/7.0.0-beta.4...7.0.0) 253### Added 254* Added `Elastica\Aggregation\WeightedAvg` aggregation [#1770](https://github.com/ruflin/Elastica/pull/1770) 255 256### Changed 257* Added missing Response information to Bulk/ResponseSet [#1776](https://github.com/ruflin/Elastica/pull/1776) 258 259 260## [7.0.0-beta.4](https://github.com/ruflin/Elastica/compare/7.0.0-beta3...7.0.0-beta.4) 261### Backward Compatibility Breaks 262* If you're **NOT** using composer to manage your libraries: the root directory of the library's source code moved from `lib/Elastica/` to `src/`. 263* The `Wildcard::setValue()` changed its signature: use it to set the value of the wildcard query only. 264* The `Wildcard` Query's constructor now requires the `name` and `value` properties. 265* The `Terms` Query's constructor now requires the `field` and `terms` properties. 266 267### Added 268* Added `AbstractTermsAggregation::setIncludeAsExactMatch()` [#1766](https://github.com/ruflin/Elastica/pull/1766) 269* Added `AbstractTermsAggregation::setExcludeAsExactMatch()` [#1766](https://github.com/ruflin/Elastica/pull/1766) 270* Added `AbstractTermsAggregation::setIncludeWithPartitions()` [#1766](https://github.com/ruflin/Elastica/pull/1766) 271* Added `Elastica\Reindex->setPipeline(Elastica\Pipeline $pipeline): void`. The link between the reindex and the pipeline is solved when `run()` is called, and thus the pipeline given doesn't need to be created before calling `setPipeline()` [#1752](https://github.com/ruflin/Elastica/pull/1752) 272* Added `Elastica\Reindex->setRefresh(string $value): void`. It accepts `REFRESH_*` constants from its class [#1752](https://github.com/ruflin/Elastica/pull/1752) and [#1758](https://github.com/ruflin/Elastica/pull/1758) 273* Added `Elastica\Reindex->setQuery(Elastica\Query\AbstractQuery $query): void` [#1752](https://github.com/ruflin/Elastica/pull/1752) 274* Added constants `PIPELINE`, `REFRESH_TRUE`, `REFRESH_FALSE`, `REFRESH_WAIT_FOR`, `SLICES` and `SLICES_AUTO` to `Elastica\Reindex` [#1752](https://github.com/ruflin/Elastica/pull/1752) 275* Added `Elastica\Pipeline->getId(): ?string` [#1752](https://github.com/ruflin/Elastica/pull/1752) 276* Added `Elastica\Aggregation\ExtendedStatsBucket` aggregation [#1756](https://github.com/ruflin/Elastica/pull/1756) 277 278### Changed 279* Changed `Terms::setTerms()` signature: it now accepts a list of strings only [#1765](https://github.com/ruflin/Elastica/pull/1765) 280* Changed `Terms::setTermsLookup()` signature: `index`, `path` and `id` are now required arguments [#1765](https://github.com/ruflin/Elastica/pull/1765) 281* Changed `Wildcard::setValue()` and constructor's signature: added more specific `Wildcard::setBoost()` and `Wildcard::setRewrite` methods 282* Updated PHP coding standards to adhere to PSR-12 [#1760](https://github.com/ruflin/Elastica/pull/1760) 283* Updated to PHPUnit v8.5 [#1759](https://github.com/ruflin/Elastica/pull/1759) 284* Refactored code structure: use `src/` and `tests/` folders [#1755](https://github.com/ruflin/Elastica/pull/1755) 285* Require elastica-php library >= v7.1.1, fixes an issue on Ingestion/Put() type-hinting 286* Require guzzle >= v6.3 as development library: fixes issues on PHP >= 7.2 287* Require phpunit >= v7.5, fixes deprecations in with PHP 7.3 288* Scroll is now throwing an exception when calling `current()` on an invalid iteration: always call `valid()` before 289 accessing the current item, as documented in PHP's Iterator documentation [#1749](https://github.com/ruflin/Elastica/pull/1749) 290 291### Removed 292* Removed unsupported `flags` from `AbstractTermsAggregation::setInclude()` [#1766](https://github.com/ruflin/Elastica/pull/1766) 293* Removed unsupported `flags` from `AbstractTermsAggregation::setExclude()` [#1766](https://github.com/ruflin/Elastica/pull/1766) 294* `Terms::setMinimumMatch()` has been removed as not supported by ES 7.x 295 296 297## [7.0.0-beta.3](https://github.com/ruflin/Elastica/compare/7.0.0-beta2...7.0.0-beta.3) 298* Marked Elastica 5.x as unmaintained 299 300### Bugfixes 301* Fix Search::count() not counting all results [#1746](https://github.com/ruflin/Elastica/pull/1746) 302* Fixed handling of Search::OPTION_SEARCH_IGNORE_UNAVAILABLE inside Scroll object 303 304### Added 305* Added `DiversifiedSampler` aggregation [#1735](https://github.com/ruflin/Elastica/pull/1735) 306* Added `\Elastica\Query\DistanceFeature` [#1730](https://github.com/ruflin/Elastica/pull/1730) 307* Added support for injecting a callable AWS credential provider to use static, cached, or custom-sourced credentials [#1667](https://github.com/ruflin/Elastica/pull/1667) 308 309### Improvements 310* Scroll releases previous ResultSet from memory before calling ES for next data batch [#1740](https://github.com/ruflin/Elastica/pull/1740) 311 312 313## [7.0.0-beta2](https://github.com/ruflin/Elastica/compare/7.0.0-beta1...7.0.0-beta2) 314 315### Backward Compatibility Breaks 316 317* The method `Index::deleteById()` does not throw an `NotFoundException` when deleting a non-existing document [#1732](https://github.com/ruflin/Elastica/pull/1732) 318* The class `\Elastica\QueryBuilder\Version\Version240` has been moved to `\Elastica\QueryBuilder\Version\Version700` [#1693](https://github.com/ruflin/Elastica/pull/1693) 319* Dropped support for PHP 7.1 [#1703](https://github.com/ruflin/Elastica/pull/1703) 320 321### Bugfixes 322 323* Renamed `\Elastica\Suggest\Term` deprecated option `prefix_len` to `prefix_length` [#1707](https://github.com/ruflin/Elastica/pull/1707) 324* The `\Elastica\Query\GeoPolygon::count()` method now returns the count of points passed to the filter [#1696](https://github.com/ruflin/Elastica/pull/1696) 325* Fix issue in `\Elastica\Client::request()` which causes request data to not be sent to the logger [#1682](https://github.com/ruflin/Elastica/pull/1682) 326 327### Added 328 329* Added `geo_bounding_box`, `geo_polygon`, `match_phrase`, `match_phrase_prefix`, `match_none` to `\Elastica\QueryBuilder\Version\Version700` [#1702](https://github.com/ruflin/Elastica/pull/1702) 330* Added `\Elastica\ResultSet::getTotalHitsRelation()` to get relation for total hits [#1694](https://github.com/ruflin/Elastica/pull/1694) 331* Added `Sampler` aggregation [#1688](https://github.com/ruflin/Elastica/pull/1688) 332 333### Improvements 334 335* Launched tests with PHP 7.4 [#1704](https://github.com/ruflin/Elastica/pull/1704) 336* Launched local tests with PHP 7.2 by default [#1725](https://github.com/ruflin/Elastica/pull/1725) 337* Added `nullable_type_declaration_for_default_null_value`, `no_alias_functions` CS rules [#1706](https://github.com/ruflin/Elastica/pull/1706) 338* Configured `visibility_required` CS rule for constants [#1723](https://github.com/ruflin/Elastica/pull/1723) 339* Added `Collapse` DSL to `QueryBuilder` [#1724](https://github.com/ruflin/Elastica/pull/1724) 340 341 342## [7.0.0-beta1](https://github.com/ruflin/Elastica/compare/6.1.1...7.0.0-beta1) 343 344### Backward Compatibility Breaks 345* The class `\Elastica\Type\Mapping` has been moved to `\Elastica\Mapping` [#1666](https://github.com/ruflin/Elastica/pull/1666) 346* The `\Elastica\Query::$_suggest` property has been renamed to `$hasSuggest` and is now private, it should not be used from extending classes [#1679](https://github.com/ruflin/Elastica/pull/1679) 347* `\Elastica\Document` expects a string as ID, not an int [#1672](https://github.com/ruflin/Elastica/pull/1672). 348* Removed `\Elastica\Query\GeohashCell` query, use `\Elastica\Query\GeoBoundingBox` instead [#1672](https://github.com/ruflin/Elastica/pull/1672). 349* Deprecated usage of `\Elastica\Type` class, `\Elastica\Index` class must be used instead [#1666](https://github.com/ruflin/Elastica/pull/1666) 350* Removed `\Elastica\Type` class, `\Elastica\Index` class must be used instead [#1666](https://github.com/ruflin/Elastica/pull/1666) 351* Forced index names to string in `\Elastica\Index::__construct()` [#1666](https://github.com/ruflin/Elastica/pull/1666) 352* Removed Type query `\Elastica\Query\Type` [#1666](https://github.com/ruflin/Elastica/pull/1666) 353* Removed `Elastica\Type` class, `Elastica\Index` class must be used instead [#1666](https://github.com/ruflin/Elastica/pull/1666) 354* Removed `type` handling from `Elastica\Search` class [#1666](https://github.com/ruflin/Elastica/pull/1666) 355* Removed `type` handling from `Elastica\Bulk` and `Elastica\Bulk\Action` classes [#1666](https://github.com/ruflin/Elastica/pull/1666) 356* Forced index names to string in `Elastica\Index::__construct()` [#1666](https://github.com/ruflin/Elastica/pull/1666) 357* Removed Type query `Elastica\Query\Type` [#1666](https://github.com/ruflin/Elastica/pull/1666) 358* Dropped support for PHP 7.0 359* \Elastica\AbstractUpdateAction::getOptions( $fields ) no longer supports the $underscore parameter, option names must match what elasticsearch expects. 360* Removed no longer supported \Elastica\Query\QueryString::setAutoGeneratePhraseQueries( $bool ) [#1622](https://github.com/ruflin/Elastica/pull/1622) 361* Replaced [params._agg](https://www.elastic.co/guide/en/elasticsearch/reference/master/breaking-changes-7.0.html#_replaced_literal_params__agg_literal_with_literal_state_literal_context_variable_in_scripted_metric_aggregations) with state context variable in scripted metric aggregations 362* [Camel Case](https://www.elastic.co/guide/en/elasticsearch/reference/master/breaking-changes-7.0.html#_camel_case_and_underscore_parameters_deprecated_in_6_x_have_been_removed) and underscore parameters deprecated in 6.x have been removed 363* The parameter [fields](https://www.elastic.co/guide/en/elasticsearch/reference/master/breaking-changes-7.0.html#_the_parameter_literal_fields_literal_deprecated_in_6_x_has_been_removed_from_bulk_request) deprecated in 6.x has been removed from Bulk requestedit and Update request. 364* The [_parent](https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-parent-field.html) field has been removed in favour of the join field. 365* hits.total is now an object in the search response [hits.total](https://www.elastic.co/guide/en/elasticsearch/reference/master/breaking-changes-7.0.html#_literal_hits_total_literal_is_now_an_object_in_the_search_response) 366* Elastica\Reindex does not return an Index anymore but a Response. 367* Elastica\Reindex->run() does not refresh the new Index after completion anymore. Use `$reindex->setParam(Reindex::REFRESH, 'wait_for')` instead. 368* `Elastica\Search->search()` and `Elastica\Search->count()` use request method `POST` by default. Same for `Elastica\Index`, `Elastica\Type\AbstractType`, `Elastica\Type`. 369* Elastica\Client `$_config` field is now a `ClientConfiguration` instead of an array 370* Removed `\Elastica\Client::_log`, `\Elastica\Log` and the `log` configuration option. Use the `Psr\Log\LoggerInterface $logger` client argument to customize logging. 371* Changed all factory methods to make use of [late static bindings](http://docs.php.net/manual/en/language.oop5.late-static-bindings.php) by using `static` instead of `self` keyword. This is to increase extendability for classes with factory methods. 372 373 374### Bugfixes 375 376* Always set the Guzzle `base_uri` to support connecting to multiple ES hosts. [#1618](https://github.com/ruflin/Elastica/pull/1618) 377* Properly handle underscore prefixes in options and bulk request metadata ([cf upstream](https://github.com/elastic/elasticsearch/issues/26886). [#1621](https://github.com/ruflin/Elastica/pull/1621) 378* Preserve zeros while doing float serialization to JSON. [#1635](https://github.com/ruflin/Elastica/pull/1635) 379* Add ```settings``` level on json to create an Index in all tests (it worked till 6.x but it shouldn't work) 380 381 382### Added 383 384* support for elasticsearch-php ^7.0 385* Added `ParentAggregation` [#1616](https://github.com/ruflin/Elastica/pull/1616) 386* Elastica\Reindex missing options (script, remote, wait_for_completion, scroll...) 387* Added `AdjacencyMatrix` aggregation [#1642](https://github.com/ruflin/Elastica/pull/1642) 388* Added request method parameter to `Elastica\SearchableInterface->search()` and `Elastica\SearchableInterface->count()`. Same for `Elastica\Search`[#1441](https://github.com/ruflin/Elastica/issues/1441) 389* Added support for Field Collapsing (Issue: [#1392](https://github.com/ruflin/Elastica/issues/1392); PR: [#1653](https://github.com/ruflin/Elastica/pull/1653)) 390* Support string DSN in `\Elastica\Client` constructor for config argument [#1640](https://github.com/ruflin/Elastica/issues/1640) 391* Move Client configuration in a dedicated class 392* Added `callable` type hinting to `$callback` in `Client` constructor. [#1659](https://github.com/ruflin/Elastica/pull/1659) 393* Added `setTrackTotalHits` method to `Elastica\Query`[#1663](https://github.com/ruflin/Elastica/issues/1663) 394* Allow metadata to be set on Aggregations (via `AbstractAggregation::setMeta(array)`). [#1677](https://github.com/ruflin/Elastica/issues/1677) 395 396 397### Improvements 398 399* Added `native_function_invocation` CS rule [#1606](https://github.com/ruflin/Elastica/pull/1606) 400* Elasticsearch test version changed from 6.5.2 to 6.6.1 [#1620](https://github.com/ruflin/Elastica/pull/1620) 401* Clear scroll context also when empty page was received [#1660](https://github.com/ruflin/Elastica/pull/1660) 402 403 404## [6.1.1](https://github.com/ruflin/Elastica/compare/6.1.0...6.1.1) 405 406### Added 407 408* The preferred type name is [_doc](https://www.elastic.co/guide/en/elasticsearch/reference/6.5/removal-of-types.html), so that index APIs have the same path as they will have in 7.0 409* Added `BucketSelector` aggregation [#1554](https://github.com/ruflin/Elastica/pull/1554) 410* Added `DerivativeAggregation` [#1553](https://github.com/ruflin/Elastica/pull/1553) 411* The preferred type name is [_doc](https://www.elastic.co/guide/en/elasticsearch/reference/6.5/removal-of-types.html), so that index APIs have the same path as they will have in 7.0 412* Introduced new version of PHP-CS-Fixer and new Lint travis step. [#1555](https://github.com/ruflin/Elastica/pull/1555) 413* Added `typed_keys` support for Search queries [#1603](https://github.com/ruflin/Elastica/pull/1603) 414 415### Improvements 416 417* Reduced memory footprint of response by not keeping the raw JSON data when JSON after JSON has been parsed. [#1588](https://github.com/ruflin/Elastica/pull/1588) 418 419### Deprecated 420* Index templates use index_patterns instead of [template](https://www.elastic.co/guide/en/elasticsearch/reference/6.5/breaking-changes-6.0.html#_index_templates_use_literal_index_patterns_literal_instead_of_literal_template_literal) 421 422## [6.1.0](https://github.com/ruflin/Elastica/compare/6.0.2...6.1.0) 423 424### Backward Compatibility Breaks 425 426* Made result sets adhere to `\Iterator` interface definition that they implement. Specifically, you need to call `valid()` on the result set before calling `current()`. When using `foreach` this is done by PHP automatically. When `valid` returns false, the return value of `current` is undefined instead of false. [#1506](https://github.com/ruflin/Elastica/pull/1506) 427 * `\Elastica\ResultSet::next` returns `void` instead of `\Elastica\Result|false` 428 * `\Elastica\Bulk\ResponseSet::current` returns `\Elastica\Bulk\Response` instead of `\Elastica\Bulk\Response|false` 429 * `\Elastica\Multi\ResultSet::current` returns `\Elastica\ResultSet` instead of `\Elastica\ResultSet|false` 430 431### Added 432 433* Added a transport class for mocking a HTTP 403 error codes, useful for testing response failures in inheriting clients [#1529](https://github.com/ruflin/Elastica/pull/1529) 434* [Field](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-function-score-query.html#function-random) param for `Elastica\Query\FunctionScore::addRandomScoreFunction` [#1529](https://github.com/ruflin/Elastica/pull/1529) 435* [Index Recovery](https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-recovery.html) : the indices recovery API provides insight into on-going index shard recoveries. It was never been implemented into Elastica. [#1537](https://github.com/ruflin/Elastica/pull/1537) 436* add parent_id (reference [#1518](https://github.com/ruflin/Elastica/issues/1518)) in QueryBuilder. [#1533]([#1518](https://github.com/ruflin/Elastica/issues/1533)) 437* implemented ```string_distance``` option in Term Suggestion [#1543](https://github.com/ruflin/Elastica/pull/1543) 438 439### Improvements 440 441* Using `Elastica\Query\FunctionScore::addRandomScoreFunction` without `$field` parameter is deprecated since ES 6.0 and will fail since ES 7.0 [#1522](https://github.com/ruflin/Elastica/pull/1522) 442* `Aggreation\Percentiles` updated to a newer version of the Algorithm (T-Digest 3.2) and Percentiles results changed a bit Have a [look at here](https://github.com/elastic/elasticsearch/pull/28305), so updated tests in order not to fail. [#1531]([#1352](https://github.com/ruflin/Elastica/pull/1531)) 443* `Aggregation\Percentiles` have been updated since [Elasticsearch 2.3](https://www.elastic.co/guide/en/elasticsearch/reference/2.3/search-aggregations-metrics-percentile-aggregation.html). In this version `compression, HDR histogram` changed their implementations. The `missing` field has never been implemented. [#1532](https://github.com/ruflin/Elastica/pull/1532) 444 445 Before 446 ```json 447 "compression" : 200, 448 "method" : "hdr", 449 "number_of_significant_value_digits" : 3 450 ``` 451 452 Now 453 ```json 454 "tdigest": { 455 "compression" : 200 456 }, 457 "hdr": { 458 "number_of_significant_value_digits" : 3 459 } 460 ``` 461 462* Never implemented the method *Missing* on [`Aggregation\Percentiles`](https://www.elastic.co/guide/en/elasticsearch/reference/6.4/search-aggregations-metrics-percentile-aggregation.html) [#1532](https://github.com/ruflin/Elastica/pull/1532) 463 464## [6.0.2](https://github.com/ruflin/Elastica/compare/6.0.1...6.0.2) 465 466### Added 467 468* Added support for pipeline when indexing document. [#1455](https://github.com/ruflin/Elastica/pull/1455) 469* Added support for multiple bucket sort orders for aggregations. [#1480](https://github.com/ruflin/Elastica/pull/1480) 470* Added basic support for the Elasticsearch Task Api 471* Added updateByQuery endpoint. [#1499](https://github.com/ruflin/Elastica/pull/1499) 472 473### Improvements 474 475* Use `source` script field instead of deprecated (since ES 5.6) `inline` field. [#1497](https://github.com/ruflin/Elastica/pull/1497) 476* Updated Elasticsearch testing version to 6.2.4. [#1501](https://github.com/ruflin/Elastica/pull/1501) 477 478 479## [6.0.1](https://github.com/ruflin/Elastica/compare/6.0.0...6.0.1) 480 481### Bugfixes 482- Characters "<" and ">" will be removed when a query term is passed to [`Util::escapeTerm`](https://github.com/ruflin/Elastica/pull/1415/files). Since v5.1 the [documentation](https://www.elastic.co/guide/en/elasticsearch/reference/5.1/query-dsl-query-string-query.html#_reserved_characters) states that these symbols cannot be escaped ever. 483- Remove [`each()`](http://www.php.net/each) usage to fix PHP 7.2 compatibility 484- Fix [#1435](https://github.com/ruflin/Elastica/issues/1435) forcing `doc_as_upsert` to be boolean, acording [Elastic doc-update documentation](https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-update.html#_literal_doc_as_upsert_literal) 485- Fix [#1456](https://github.com/ruflin/Elastica/issues/1456) set SSL as connection scheme if it is required 486 487### Added 488 489* Added request parameters to `Client->deleteDocuments()`. [#1419](https://github.com/ruflin/Elastica/pull/1419) 490* Added request parameters to `Type->updateDocuments()`, `Type->addDocuments()`, `Type->addObjects()`, `Index->addDocuments()`, `Index->updateDocuments()`. [#1427](https://github.com/ruflin/Elastica/pull/1427) 491* Added avg_bucket() and sum_bucket() in aggregations [PR#1443](https://github.com/ruflin/Elastica/pull/1443) - (https://github.com/ruflin/Elastica/issues/1279) 492* Added support for [terms lookup mechanism](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-terms-query.html#query-dsl-terms-lookup) on terms query [#1452](https://github.com/ruflin/Elastica/pull/1452) 493 494 495## [6.0.0](https://github.com/ruflin/Elastica/compare/6.0.0-beta1...6.0.0) 496 497### Backward Compatibility Breaks 498- Return the [_source of inner hit nested](https://github.com/elastic/elasticsearch/pull/26982) as is without wrapping it into its full path context [#1398](https://github.com/ruflin/Elastica/pull/1398) 499- Removed CrossIndex Class as from now use Reindex. [#1411](https://github.com/ruflin/Elastica/pull/1411) 500 501### Added 502 503- Added clear() to `Scroll` for closing search context on ES manually 504- Added Elastica\Aggregation\StatsBucket 505 506### Improvements 507 508- Clear search context on ES after usage in `Scroll` 509 510 511## [6.0.0-beta1](https://github.com/ruflin/Elastica/compare/5.3.0...6.0.0-beta1) 512 513### Backward Compatibility Breaks 514 515- Numeric to and from parameters in [date_range aggregation](https://www.elastic.co/guide/en/elasticsearch/reference/6.0/breaking_60_aggregations_changes.html#_numeric_literal_to_literal_and_literal_from_literal_parameters_in_literal_date_range_literal_aggregation_are_interpreted_according_to_literal_format_literal_now) are interpreted according to format of the target field 516- In ES6 only [strict type boolean](https://github.com/elastic/elasticsearch/pull/22200) are accepted. [On ES6 docs](https://www.elastic.co/guide/en/elasticsearch/reference/6.0/boolean.html) 517- removed analyzed/not_analyzed on [indices mapping](https://www.elastic.co/guide/en/elasticsearch/reference/6.0/mapping-index.html) 518- [store](https://www.elastic.co/guide/en/elasticsearch/reference/6.0/mapping-store.html) field only accepts boolean 519- Replace IndexAlreadyExistsException with [ResourceAlreadyExistsException](https://github.com/elastic/elasticsearch/pull/21494) [#1350](https://github.com/ruflin/Elastica/pull/1350) 520- in order to delete an index you should not delete by its alias now you should delete using the [concrete index name](https://github.com/elastic/elasticsearch/blob/6.0/core/src/test/java/org/elasticsearch/aliases/IndexAliasesIT.java#L445) [#1348](https://github.com/ruflin/Elastica/pull/1348) 521- Removed ```optimize``` from Index class as it has been deprecated in ES 2.1 and removed in [ES 5.x+](https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-optimize.html) use forcemerge [#1351](https://github.com/ruflin/Elastica/pull/1350) 522- 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](https://github.com/elastic/elasticsearch/blob/6.0/core/src/test/java/org/elasticsearch/index/query/QueryStringQueryBuilderTests.java#L917) [#1352](https://github.com/ruflin/Elastica/pull/1352) 523- Index mapping field of type [*'string'*](https://www.elastic.co/guide/en/elasticsearch/reference/5.5/string.html) has been removed from Elasticsearch 6.0 codebase [#1353](https://github.com/ruflin/Elastica/pull/1353) 524- The [created and found](https://github.com/elastic/elasticsearch/pull/25516) fields in index and delete responses became obsolete after the introduction of the result field in index, update and delete responses [#1354](https://github.com/ruflin/Elastica/pull/1354) 525- Removed file scripts [#24627](https://github.com/elastic/elasticsearch/pull/24627) [#1364](https://github.com/ruflin/Elastica/pull/1364) 526- Removed [groovy script](https://github.com/elastic/elasticsearch/pull/21607) [#1364](https://github.com/ruflin/Elastica/pull/1364) 527- Removed [native script](https://github.com/elastic/elasticsearch/pull/24726) [#1364](https://github.com/ruflin/Elastica/pull/1364) 528- Removed old / removed script language support : javascript, python, mvel [#1364](https://github.com/ruflin/Elastica/pull/1364) 529- Disable [_all](https://github.com/elastic/elasticsearch/pull/22144) by default, disallow configuring _all on 6.0+ indices [#1365](https://github.com/ruflin/Elastica/pull/1365) 530- [Unfiltered nested source](https://github.com/elastic/elasticsearch/pull/26102) should keep its full path [#1366](https://github.com/ruflin/Elastica/pull/1366) 531- The deprecated minimum_number_should_match parameter in the bool query has been removed, use minimum_should_match instead. [#1369](https://github.com/ruflin/Elastica/pull/1369) 532- For geo_distance queries, sorting, and aggregations the sloppy_arc option has been removed from the distance_type parameter. [#1369](https://github.com/ruflin/Elastica/pull/1369) 533- The geo_distance_range query, which was deprecated in 5.0, has been removed. [#1369](https://github.com/ruflin/Elastica/pull/1369) 534- The optimize_bbox parameter has been removed from geo_distance queries. [#1369](https://github.com/ruflin/Elastica/pull/1369) 535- 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](https://github.com/ruflin/Elastica/pull/1369) 536- [Unfiltered nested source](https://github.com/elastic/elasticsearch/pull/26102) should keep its full path [#1366](https://github.com/ruflin/Elastica/pull/1366) 537- [Analyze Explain](https://www.elastic.co/guide/en/elasticsearch/reference/6.0/_explain_analyze.html) no more support [request parameters](https://www.elastic.co/guide/en/elasticsearch/reference/5.5/indices-analyze.html), use request body instead. [#1370](https://github.com/ruflin/Elastica/pull/1370) 538- [Mapper Attachment plugin has been removed](https://github.com/elastic/elasticsearch/pull/20416) Use Ingest-attachment plugin and attachment processors with pipeline to ingest new documents. [#1375](https://github.com/ruflin/Elastica/pull/1375) 539- [Indices](https://github.com/elastic/elasticsearch/pull/21837) Query has been removed in Elasticsearch 6.0 [#1376](https://github.com/ruflin/Elastica/pull/1376) 540- Remove deprecated [type and slop](https://github.com/elastic/elasticsearch/pull/26720) field in match query [#1382](https://github.com/ruflin/Elastica/pull/1382) 541- Remove [several parse field](https://github.com/elastic/elasticsearch/pull/26711) deprecations in query builders [#1382](https://github.com/ruflin/Elastica/pull/1382) 542- Remove [deprecated parameters](https://github.com/elastic/elasticsearch/pull/26508) from ids_query [#1382](https://github.com/ruflin/Elastica/pull/1382) 543- Implemented [join-datatype](https://www.elastic.co/guide/en/elasticsearch/reference/current/parent-join.html) is a special field that creates parent/child relation within documents of the same index. [#1383](https://github.com/ruflin/Elastica/pull/1383) 544 545### Bugfixes 546- Enforce [Content-Type requirement on the layer Rest](https://github.com/elastic/elasticsearch/pull/23146), a [PR on Elastica #1301](https://github.com/ruflin/Elastica/issues/1301) solved it (it has been implemented only in the HTTP Transport), but it was not implemented in the Guzzle Transport. [#1349](https://github.com/ruflin/Elastica/pull/1349) 547- 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. 548 549### Added 550 551- Added `Query\SpanContaining`, `Query\SpanWithin` and `Query\SpanNot` [#1319](https://github.com/ruflin/Elastica/pull/1319) 552- Implemented [Pipeline](https://www.elastic.co/guide/en/elasticsearch/reference/current/pipeline.html) and [Processors](https://www.elastic.co/guide/en/elasticsearch/reference/current/ingest-processors.html). [#1373](https://github.com/ruflin/Elastica/pull/1373) 553- 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](https://github.com/ruflin/Elastica/pull/1378) 554 555 556## [5.3.0](https://github.com/ruflin/Elastica/compare/5.2.1...5.3.0) 557 558### Backward Compatibility Breaks 559 560- Removed `Query\NumericRange`, use `Query\Range` instead [#1334](https://github.com/ruflin/Elastica/pull/1334) 561 562### Bugfixes 563 564- Send the `scroll_id` inside a json body instead of plain text [#1325](https://github.com/ruflin/Elastica/pull/1325) 565 566### Added 567 - Added getNumberOfReplicas() for index settings [PR#1324](https://github.com/ruflin/Elastica/pull/1324) 568 - Added getNumberOfShards() for index settings [PR#1321](https://github.com/ruflin/Elastica/pull/1331) 569 - Added `\Elastica\Query\Span*` for proximity searches [#304](https://github.com/ruflin/Elastica/issues/304) 570 - Added avg_bucket() and sum_bucket() in aggregations [PR#1443](https://github.com/ruflin/Elastica/pull/1443) - (https://github.com/ruflin/Elastica/issues/1279) 571 572 573## [5.2.1](https://github.com/ruflin/Elastica/compare/5.2.0...5.2.1) 574 575### Bugfixes 576 577- Fix elastic 5.3.x deprecation warning related to Content-Type not being set. 578- Fix updating settings of an index. [#1296](https://github.com/ruflin/Elastica/pull/1296) 579- Remove `Elastica\Search::OPTION_SEARCH_TYPE_DFS_QUERY_AND_FETCH` and `Elastica\Search::OPTION_SEARCH_TYPE_QUERY_AND_FETCH` as no longer supported as of 5.3.0 580- Fix bad parameter value to refresh document [#1318](https://github.com/rufli/Elastica/pull/1318) 581 582### Added 583 584 - Parameter `filter_path` for response filtering (e.g. `$index->search($query, ['filter_path' => 'hits.hits._source'])`) 585 - 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) 586 - Add support for querystring in Type. this allow to use `update_all_types` in type mapping in order to resolve conflicts between fields in different types. [Conflicts between fields in different types](https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html#merging-conflicts) 587 - Added `\Elastica\Query\ParentId` to avoid join with parent documents [#1287](https://github.com/ruflin/Elastica/issues/1287) 588 - Added `\Elastica\Reindex` for reindexing between indices [#1311](https://github.com/ruflin/Elastica/issues/1311) 589 590### Improvements 591 592 - Added support for `other_bucket` and `other_bucket_key` paramters on `Elastica\Aggregation\Filters` 593 - Update elasticsearch testing dependency to 5.4.1 594 595### Deprecated 596 - Deprecated `Tool\CrossIndex` use `\Elastica\Reindex` instead [#1311](https://github.com/ruflin/Elastica/issues/1311) 597 598## [5.2.0](https://github.com/ruflin/Elastica/compare/5.1.0...5.2.0) 599 600### Bugfixes 601 602- Fix reading bool index settings like `\Elastica\Index\Settings::getBlocksWrite`. Elasticsearch returns all settings as strings and does not normalize bool values. 603 The getters now return the right bool value for whichever string representation is used like 'true', '1', 'on', 'yes'. [#1251](https://github.com/ruflin/Elastica/pull/1251) 604- Fix for QueryBuilder version check `\Elastica\QueryBuilder\Version\Version240.php` added all new query types to queries array. [#1266](https://github.com/ruflin/Elastica/pull/1266) [#1269](https://github.com/ruflin/Elastica/pull/1269) 605- Do not modify the original query in `\Elastica\Search::count`. [#1276](https://github.com/ruflin/Elastica/pull/1276) 606 607### Added 608 609- Added `\Elastica\Client::requestEndpoint`, `\Elastica\Index::requestEndpoint`, `\Elastica\Type::requestEndpoint` that allow make requests with official client Endpoint usage. [#1275](https://github.com/ruflin/Elastica/pull/1275) 610- Added `\Elastica\Aggregation\GeoBounds` that computes the bounding box containing all geo_point values for a field. [#1271](https://github.com/ruflin/Elastica/pull/1271) 611- Added `\Elastica\Query\MatchNone` the inverse of MatchAll. [#1276](https://github.com/ruflin/Elastica/pull/1276) 612 613### Improvements 614 615- added support for the "explain" flag of AnalyzeAPI [#1254](https://github.com/ruflin/Elastica/pull/1254) 616- added support for the "request_cache" search option [#1243](https://github.com/ruflin/Elastica/pull/1243) 617- skip sending "retry_on_conflict=0" default query param to improve compatibility with Amazon Elasticsearch [#1047](https://github.com/ruflin/Elastica/pull/1047) 618- optimized `\Elastica\Scroll` to avoid one request [#1273](https://github.com/ruflin/Elastica/pull/1273) 619- Update elasticsearch-php dependency to 5.2.0 [#1245](https://github.com/ruflin/Elastica/pull/1245) 620- Update elasticsearch testing dependency to 5.2.2 [#1245](https://github.com/ruflin/Elastica/pull/1245) 621 622### Deprecated 623 624- Deprecated `\Elastica\Exception\ElasticsearchException` which is irrelevant since Elasticsearch now exposes the errors as a structured array instead of a single string. 625 Use `\Elastica\Exception\ResponseException::getResponse::getFullError` instead. 626- Deprecated both `prefix_len` & `min_word_len` fields in `Elastica\Suggest\CandidateGenerator\DirectGenerator` as these now return errors when using the phrase suggester to querying terms. 627 Use `prefix_length` & `min_word_length` instead [#1282](https://github.com/ruflin/Elastica/pull/1282) 628 Use `\Elastica\Exception\ResponseException::getResponse::getFullError` instead. [#1251](https://github.com/ruflin/Elastica/pull/1251) 629 630## [5.1.0](https://github.com/ruflin/Elastica/compare/5.0.0...5.1.0) 631 632### Backward Compatibility Breaks 633 634- `\Elastica\Script\AbstractScript` added the script language as constructor argument and sub-classes must implement `getScriptTypeArray` 635 636### Bugfixes 637 638- Removed features that do not exist in Elasticsearch 5.0 anymore: 639 - `ttl` and `timestamp` logic: setters and getters in documents and mapping 640 - `\Elastica\Query\Missing`: negate `\Elastica\Query\Exists` instead 641 - `\Elastica\Query\TopChildren` 642- `\Elastica\Query\MatchPhrase` and `\Elastica\Query\MatchPhrasePrefix` do not extend `\Elastica\Query\Match` anymore because they do not share exactly the same options 643- Removed the `routing` option in `\Elastica\Index::create` because 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. 644- Fix `relation` property of `\Elastica\Query\GeoShapeProvided` 645- repoint `\Elastica\Type::exists` from the deprecated /{index}/{type} endpoint to /{index}/_mapping/{type} 646 647### Added 648 649- added `\Elastica\Script\ScriptId` to reference stored scripts by ID 650- added `\Elastica\Query\AbstractGeoShape::RELATION_WITHIN` 651- Date math in index names is now escaped in URI 652- Added a check for paths that already have date math escaped 653 654### Improvements 655 656- `\Elastica\Query\HasParent` to use `parent_type` instead of `type`. Fixes warning due to field being deprecated. 657 658### Deprecated 659 660- Deprecated functionality that is also deprecated in Elasticsearch 5.0: 661 - `\Elastica\Client::optimizeAll` in favor of `\Elastica\Client::forcemergeAll` 662 - `\Elastica\Query\BoolQuery::setMinimumNumberShouldMatch` in favor of `\Elastica\Query\BoolQuery::setMinimumShouldMatch` 663 - `\Elastica\Query\GeoDistanceRange`: use distance aggregations or sorting instead 664 - `\Elastica\Query\GeohashCell` 665 - `\Elastica\Query\Indices`: search on the `_index` field instead 666 - `\Elastica\Query\Match::setFieldType`: use `\Elastica\Query\MatchPhrase` and `\Elastica\Query\MatchPhrasePrefix` instead 667- `\Elastica\Transport\Null` is deprecated because null is a reserved class name in PHP 7. Use `\Elastica\Transport\NullTransport` instead. 668 669## [5.0.0](https://github.com/ruflin/Elastica/compare/5.0.0-beta1...5.0.0) 670 671### Backward Compatibility Fixes 672- Updated Elastica\Test\Suggest\CompletionTest now payload and output are removed 673- Updated Elastica\Test\TypeTest::testGetDocumentWithFieldsSelection The stored_fields parameter will only return stored fields — it will no longer extract values from the _source 674- remove _shutdown for Node and Cluster as deprecated 675 676### Bugfixes 677- Query options such as "timeout" or "terminate_after" should not be ignored when using Multi\Search 678 679### Added 680- Added regex option form suggest completions https://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters-completion.html#regex 681 682### Improvements 683- `\Elastica\JSON` throws exception with readable message instead of errno 684- `\Elastica\JSON::stringify` throws `\Elastica\Exception\JSONParseException` on error 685 686 687## [5.0.0-beta1](https://github.com/ruflin/Elastica/compare/3.2.3...5.0.0-beta1) 688 689### Backward Compatibility Breaks 690- Update elasticsearch dependency to 5.0 691- Replace flush refresh param with a options array 692- Rename Mapping::setFields to Mapping::setStoredFields 693- Removing all deprecated filters including tests. Use queries instead. 694- Remove deprecated Elastica\Script*.php classes. Use Elastica\Script\* instead. 695- Remove Elastica/Query/Image.php and test/Elastica/Query/ImageTest.php, no more support for image-plugin. 696- Remove Elastica/Query/Filtered.php and test/Elastica/Query/FilteredTest.php and all uses from code. 697- Remove index.merge.policy.merge_factor, and set/get MergePolicy as it looks deprecated from ES 1.6 698- Add new "Percolate query" functionality and tests 699- Remove in Elastica\AbstractUpdateAction Option "percolate", getter and setter as deprecated as of ES 1.3. Use Percolator instead. 700- Remove in Elastica\Aggregation\DateHistogram Option "pre_zone" is deprecated as of ES 1.5. Use "time_zone" instead 701- Remove in Elastica\Aggregation\DateHistogram Option "post_zone" is deprecated as of ES 1.5. Use "time_zone" instead. 702- Remove in Elastica\Aggregation\DateHistogram Option "pre_zone_adjust_large_interval" is deprecated as of ES 1.5. Use "time_zone" instead. 703- Remove in Elastica\Aggregation\DateHistogram Option "pre_offset" is deprecated as of ES 1.5. Use "offset" instead. 704- Remove in Elastica\Aggregation\DateHistogram Option "post_offset" is deprecated as of ES 1.5. Use "offset" instead. 705- Remove Elastica\Document::add as deprecated. Use Elastica\Document::set instead 706- 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. 707- 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. 708- 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. 709- Remove Elastica/Query::setLimit as deprecated. Use the Elastica/Query::setSize() method 710- Remove Elastica\Query\Builder 711- Remove Elastica\Query\Fuzzy::addField as deprecated. Use Elastica\Query\Fuzzy::setField and Elastica\Query\FuzzysetFieldOption instead. 712- Remove Elastica\Query::setIds as deprecated. Use Elastica\Query::like instead. 713- Remove Elastica\Query::setLikeText as deprecated. Use Elastica\Query::like instead. 714- Remove Elastica\Query Option "percent_terms_to_match" is deprecated as of ES 1.5. Use "minimum_should_match" instead. 715- Remove Elastica\QueryBuilder\DSL\Query "More Like This Field" query is deprecated as of ES 1.4. Use MoreLikeThis query instead. 716- Changed visibility from protected to private Elastica\ResultSet::$_position as accessing this property in an extended class is deprecated. 717- Changed visibility from protected to private Elastica\ResultSet::$_response as accessing this property in an extended class is deprecated. 718- Changed visibility from protected to private Elastica\ResultSet::$_query as accessing this property in an extended class is deprecated. 719- Changed visibility from protected to private Elastica\ResultSet::$_results as accessing this property in an extended class is deprecated. 720- Removed Elastica\ResultSet::$_timedOut as deprecated. Use ResultSet->hasTimedOut() instead. 721- Removed Elastica\ResultSet::$_took as deprecated. Use ResultSet->hasTimedOut() instead. 722- Removed Elastica\ResultSet::$_totalHits as deprecated. Use ResultSet->hasTimedOut() instead. 723- 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. 724- Removed Elastica\Query\Builder as deprecated. Use new Elastica\QueryBuilder instead. 725- Removed Elastica\Percolator as deprecated. Use new Elastica\Query\Percolate instead. 726- Changed Elastica\Index::deleteByQuery() to use new API https://www.elastic.co/guide/en/elasticsearch/reference/5.0/docs-delete-by-query.html 727- Remove Elastica\ScanAndScroll and test, Scan search type is removed from ElasticSearch 5.0. 728- Remove support for PHP 5.4 and 5.5. Require at least PHP 5.6 #1202 729- Remove groovy as default scripting language 730- Remove search_type=count as it is removed in Elasticsearch 5.0 731- Remove fielddata_fields as it has been deprecated in ES5, use parameter docvalue_fields instead 732 733### Added 734- Elastica\QueryBuilder\DSL\Query::exists 735- Elastica\QueryBuilder\DSL\Query::type 736 737### Improvements 738- Add a constant for the expression language. 739- `Health::getIndices` returns key=>value result, where key === $indexName. 740``` 741$cluster->getHealth()->getIndices()[$indexName] 742// or 743$indices = $cluster->getHealth()->getIndices(); 744$indices[$indexName] 745``` 746- Added a `Query::setTrackScores` method 747- Implemented painless as default scripting language in tests 748- Updated Dockerfile and elasticsearch.yml to allow inline.script: true 749- Updated some Script function to use groovy as now default scripting is painless 750 - Elastica\Test\Aggregation\ScriptTest::testAggregationScript 751 - Elastica\Test\Aggregation\ScriptTest::testAggregationScriptAsString 752 - Elastica\Test\Query\FunctionScoreTest::testScriptScore 753 - Elastica\Test\BulkTest::testUpdate 754 - Elastica\Test\ClientTest::testUpdateDocumentByScript 755 - Elastica\Test\ClientTest::testUpdateDocumentByScriptWithUpsert 756 - Elastica\Test\ClientTest::testUpdateDocumentPopulateFields 757 - Elastica\Test\ClientTest::testUpdateDocumentPopulateFields 758 - Elastica\Test\TypeTest::testUpdateDocument 759 - Elastica\Test\TypeTest::testUpdateDocumentWithIdForwardSlashes 760 - Elastica\Test\TypeTest::testUpdateDocumentWithParameter 761 - Elastica\Test\TypeTest::testUpdateDocumentWithFieldsSource 762- Composer installations will no longer include tests and other development files. 763 764 765## [3.2.3](https://github.com/ruflin/Elastica/compare/3.2.2...3.2.3) 766 767### Bugfixes 768- Query builder is now compatible with Elasticsearch 2.X 769 770### Added 771- Elastica\Aggregation\BucketScript 772- Elastica\Aggregation\SerialDiff 773- Elastica\Query\InnerHits 774 775### Improvements 776- Elastica\Client constructor now accepts a transport of fully qualified name. [#1169](https://github.com/ruflin/Elastica/pull/1169) 777- Update Elasticsearch dependency to 2.4.0 778 779 780## [3.2.2](https://github.com/ruflin/Elastica/compare/3.2.1...3.2.2) 781 782### Backward Compatibility Fixes 783 784### Bugfixes 785- Set HTTP headers on each request preventing server error if persistent connection is enabled and compression enabled and later disabled for the same connection. 786- Removed `int` type hinting in `setMinimumMatch` (`Terms` Query): it should also allow `string`. [#1151](https://github.com/ruflin/Elastica/pull/1151) 787 788### Added 789- Elastica\QueryBuilder\DSL\Query::geo_distance 790- Elastica\Aggregation\GeoCentroid [#1150](https://github.com/ruflin/Elastica/pull/1150) 791- [Multi value field](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-function-score-query.html#_multi_values_fields) param for decay function. 792- Elastica\Client::getVersion [#1152](https://github.com/ruflin/Elastica/pull/1152) 793- Added support for terminate_after parameter in search queries [#1168](https://github.com/ruflin/Elastica/pull/1168) 794 795### Improvements 796- Set PHP 7.0 as default development version 797- Get the root reason from Elasticsearch's error JSON, when available [#1111](https://github.com/ruflin/Elastica/pull/1111) 798- Optimize memory usage for Http Adapter [#1161](https://github.com/ruflin/Elastica/pull/1161) 799 800### Changed 801- Remove JSON_ELASTICSEARCH constant as not needed anymore 802 803## [3.2.1](https://github.com/ruflin/Elastica/compare/3.2.0...3.2.1) 804 805### Backward Compatibility Fixes 806- Reintroduced properties in ResultSet removed in 3.2.0 as deprecated properties to be removed in 4.0 807 808### Bugfixes 809- Fix fatal error on `Query::addScriptField()` if scripts were already set via `setScriptFields()` [#1086](https://github.com/ruflin/Elastica/pull/1086) 810- Fix namespace collision of `Type` in `Query\Ids` [#1104](https://github.com/ruflin/Elastica/pull/1104) 811 812### Added 813- 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](https://github.com/ruflin/Elastica/pull/1066) 814- Tidied property initialisation in classes where it was duplicated 815 816## [3.2.0](https://github.com/ruflin/Elastica/compare/3.1.1...3.2.0) 817 818### Backward Compatibility Breaks 819- Method \Elastica\ResultSet::create and property \Elastica\ResultSet::$class were removed. To change the ResultSet class, implement your own ResultSet Builder. [#1065](https://github.com/ruflin/Elastica/pull/1065) 820- Properties on \Elastica\ResultSet _totalHits, _maxScore, _took and _timedOut that were originally set on object construction are now accessed by the getters on the ResultSet. [#1065](https://github.com/ruflin/Elastica/pull/1065) 821 822### Bugfixes 823- Fix php notice on `\Elastica\Index::getAliases()` if index has no aliases [#1078](https://github.com/ruflin/Elastica/issues/1078) 824 825### Added 826- Update elasticsearch build dependency to elasticsearch 2.3.2 [#1084](https://github.com/ruflin/Elastica/pull/1084) 827 828### Improvements 829- `Elastica\Type->deleteByQuery($query, $options)` $query param can be a query `array` again https://github.com/ruflin/Elastica/issues/1072 [#1073](https://github.com/ruflin/Elastica/pull/1073) 830- `Elastica\Client->connect()` allows to establish a connection to ES server when the config was set using method `Elastica\Client->setConfigValue()` https://github.com/ruflin/Elastica/issues/1076 [#1077](https://github.com/ruflin/Elastica/pull/1077) 831- Elastica\Client constructor now accepts a LoggerInterface and will log both successful and failed requests. [#1069](https://github.com/ruflin/Elastica/pull/1069) 832 833### Deprecated 834- Configuring the logger in \Elastica\Client $config constructor is deprecated and will be removed. Use the $logger argument instead. [#1069](https://github.com/ruflin/Elastica/pull/1069) 835- Extracted creation of ResultSet objects to a new dedicated ResultSet\Builder implementation. [#1065](https://github.com/ruflin/Elastica/pull/1065) 836- All properties in the \Elastica\ResultSet class will be moved to private in 4.0. To manipulate the creation of a ResultSet, implement the \Elastica\ResultSet\BuilderInterface and pass your new Builder to the \Elastica\Search instances. [#1065](https://github.com/ruflin/Elastica/pull/1065) 837 838 839## [3.1.1](https://github.com/ruflin/Elastica/compare/3.1.0...3.1.1) 840 841### Added 842- 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](https://github.com/ruflin/Elastica/pull/1056) 843- Update elasticsearch build dependency to elasticsearch 2.2.1 844 845### Improvements 846- `Elastica\Exception\InvalidException` will be thrown if you try using an 847 `Elastica\Aggregation\AbstractSimpleAggregation` without setting either the 848 `field` or `script` param. 849- `Elastica\Index->deleteByQuery($query, $options)` $query param can be a query `array` again 850- `Elastica\Query\MoreLikeThis->toArray()` now supports providing a non-indexed document as an input to perform the comparison. 851- `Elastica\Status` will lazy load the `_stats` at when it is needed. https://github.com/ruflin/Elastica/pull/1058 852 853 854## [3.1.0](https://github.com/ruflin/Elastica/compare/3.0.1...3.1.0) 855 856### Backward Compatibility Breaks 857- Update Guzzle transport to use Guzzle 6 858- Elastica\Query\FunctionScore::setFilter - deprecated and will throw DeprecatedException since not supported by Elasticsearch. Use setQuery instead. 859 860### Added 861- `Elastica\Result->getDocument` and `Elastica\ResultSet->getDocuments` for return `\Elastica\Document`. https://github.com/ruflin/Elastica/issues/960 862 863### Improvements 864- Add username and password params to connection 865 866### Deprecated 867- Elastica\AbstractScript|Script|ScriptFile|ScriptFields deprecated in favor of Elastica\Script|AbstractScript|Script|ScriptFile|ScriptFields [#1028](https://github.com/ruflin/Elastica/pull/1028) 868- 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 869 870## [3.0.1](https://github.com/ruflin/Elastica/compare/3.0.0...3.0.1) 871 872### Improvements 873- Update build dependency to elasticsearch 2.1.1 [#1022](https://github.com/ruflin/Elastica/pull/1022) 874- Readd \Elastica\Filter\Nested. See https://github.com/ruflin/Elastica/issues/1001 [#1020](https://github.com/ruflin/Elastica/pull/1020) 875 876 877## [3.0.0](https://github.com/ruflin/Elastica/compare/3.0.0-beta1...3.0.0) 878 879### Backward Compatibility Breaks 880- Revert getError changes in Response object and make it better BC compatible. See comment [here](https://github.com/ruflin/Elastica/commit/41a7a2075837320bc9bd3bca4150e05a1ec9a115#commitcomment-15136374). 881 882### Bugfixes 883- Function score query: corrected the `score_method` `average` to `avg` [#975](https://github.com/ruflin/Elastica/pull/975) 884- Set `json_decode()` assoc parameter to true in `Elastica\Response` [#1005](https://github.com/ruflin/Elastica/pull/1005) 885- Add `bigintConversion` to keys passed to connection config in `Elastica\Client` [#1005](https://github.com/ruflin/Elastica/pull/1005) 886- Use POST instead of PUT to send bulk requests [#1010](https://github.com/ruflin/Elastica/issues/1010) 887 888### Added 889- Elastica\Query\MultiMatch::setFuzziness now supports being set to `AUTO` with the const `MultiMatch::FUZZINESS_AUTO` 890- Elastica\Type\Mapping::send now accepts query string parameters to send along with the mapping request 891- Elastica\Query\BoolQuery::addFilter 892 893### Improvements 894- More info on Elastica\Exception\PartialShardFailureException. Not just number of failed shards. 895- Allow bool in TopHits::setSource function [#1012](https://github.com/ruflin/Elastica/issues/1012) 896 897### Deprecated 898- Elastica\Query\Filtered triggers E_USER_DEPRECATED error because filtered query is deprecated since ES 2.0.0-beta1. Use BoolQuery instead. 899- Elastica\QueryBuilder\DSL\Query::filtered() triggers E_USER_DEPRECATED error because filtered query is deprecated since ES 2.0.0-beta1. Use bool() instead. 900 901 902 903## [3.0.0-beta1](https://github.com/ruflin/Elastica/compare/2.3.1...3.0.0-beta1) 904 905### Backward Compatibility Breaks 906- Elastica\AbstractUpdateAction::setPercolate now throw DeprecatedException, user Percolator instead 907- Elastica\AbstractUpdateAction::getPercolate now throw DeprecatedException, user Percolator instead 908- Elastica\AbstractUpdateAction::hasPercolate now throw DeprecatedException, user Percolator instead 909- 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 910- MoreLikeThis::setLikeText deprecated from ES 2.0, use setLike instead, but there is a difference - setLike haven't trim magic inside for strings 911- Elastica\Document, methods: setScript, getScript, hasScript now throw DeprecatedException. 912- MoreLikeThis, methods: setLikeText, setIds, setPercentTermsToMatch now throw DeprecatedException. 913- Elastica\Aggregation\DateHistogram, methods: setPreZone, setPostZone, setPreZoneAdjustLargeInterval, setPreOffset, setPostOffset now throw DeprecatedException. 914- Elastica\Query\Builder trigger E_USER_DEPRECATED error when you try use it. 915- Elastica\Filter\Bool and Elastica\Query\Bool trigger E_USER_DEPRECATED error when you try use them. 916- Elastica\Query\Fuzzy:addField method trigger E_USER_DEPRECATED error 917- Elastica\Query\FunctionScore:addBoostFactorFunction method trigger E_USER_DEPRECATED error 918- Elastica\Query:setLimit method trigger E_USER_DEPRECATED error 919- Elastica\Document:add method trigger E_USER_DEPRECATED error 920- Type::moreLikeThis API was removed from ES 2.0, use MoreLikeThis query instead 921- Remove Thrift transport and everything related to it 922- Remove Memcache transport and everything related to it 923- Remove BulkUdp and everything related to it 924- Remove Facets and everything related to it 925- Remove ansible scripts for tests setup and Vagrantfile as not needed anymore. 926 All is based on docker containers now 927- Support for PHP 5.3 removed 928- Elastica\Reponse::getError() now returns and array instead of a string 929- Move function \Elastica\Index\Status::getAliases() and hasAlias(...) to \Elastica\Index::getAliases() 930- Remove \Elastica\Index\Status object and related functions 931- \Elastica\Query\FuzzyLikeThis remove as not supported anymore 932- Remove \Elastica\Status::getServerStatus() as the information was removed 933- DeleteByQuery now requires the delete-by-query plugin isntalled 934- Remove \Elastica\Filter\Nested as it is replaced by \Elastica\Query\Nested 935- Require at least PHP 5.4 936 937### Bugfixes 938- Fixed GeoShapeProvided relation parameter position 939 940### Added 941- Elastica\Reponse::getErrorMessage was added as getError is now an object 942- Elastica\Query\MoreLikeThis::setLike 943- \Elastica\Exception\DeprecatedException 944- Connection option to convert JSON bigint results to strings can now be set [#717](https://github.com/ruflin/Elastica/issues/717) 945 946### Improvements 947- Travis builds were moved to docker-compose setup. Ansible scripts and Vagrant files were removed 948- trigger_error with E_USER_DEPRECATE added to deprecated places 949- DeprecatedException will be thrown, if there is a call of method that not support BC 950 951### Deprecated 952- Elastica\Type::delete is deprecated 953- Elastica\Filter\Bool is deprecated 954- Elastica\Query\Bool is deprecated 955- Elastica\Query\MoreLikeThis::setLikeText is deprecated 956- Elastica\Query\MoreLikeThis::setIds is deprecated 957 958## [2.3.1](https://github.com/ruflin/Elastica/releases/tag/2.3.1) - 2015-10-17 959 960### Bugfixes 961- Filters aggregation: empty name is named bucket [#935](https://github.com/ruflin/Elastica/pull/935) 962- Prevent mix keys in filters ([#936](https://github.com/ruflin/Elastica/pull/936)) [#939](https://github.com/ruflin/Elastica/pull/939) 963- Fix empty string is not anonymous filter [#935](https://github.com/ruflin/Elastica/pull/935) 964- Filters aggregation: empty name is named bucket [#935](https://github.com/ruflin/Elastica/pull/935) 965 966### Added 967- Support for field_value_factor [#953](https://github.com/ruflin/Elastica/pull/953) 968- Added setMinDocCount and setExtendedBounds options [#947](https://github.com/ruflin/Elastica/pull/947) 969- Avoid environment dependecies in tests [#938](https://github.com/ruflin/Elastica/pull/938) 970 971### Improvements 972- Update elasticsearch dependency to elasticsearch 1.7.3 [#957](https://github.com/ruflin/Elastica/pull/957) 973 974### Deprecated 975- Added exceptions of deprecated transports to deprecation list 976 977 978## [2.3.0](https://github.com/ruflin/Elastica/releases/tag/2.3.0) - 2015-09-15 979 980 981### Backward Compatibility Breaks 982- Objects do not casts to arrays in setters and saved in params as objects. There is many side effects if 983 you work with params on "low-level" or change your objects after you call setter with object 984 as argument. [#916](https://github.com/ruflin/Elastica/pull/916) 985 986### Added 987- Add Script File feature [#902](https://github.com/ruflin/Elastica/pull/902) [#914](https://github.com/ruflin/Elastica/pull/914) 988 989### Improvements 990- Support the http.compression in the Http transport adapter [#515](https://github.com/ruflin/Elastica/issues/515) 991- Introduction of Lazy toArray [#916](https://github.com/ruflin/Elastica/pull/916) 992- Update Elasticsearch dependency to 1.7.2 [#929](https://github.com/ruflin/Elastica/pull/929) 993 994 995 996## [2.2.1](https://github.com/ruflin/Elastica/releases/tag/2.2.1) - 2015-08-10 997 998 999### Added 1000- Support for index template added [#905](https://github.com/ruflin/Elastica/pull/905) 1001 1002### Improvements 1003- Update Elasticsearch dependency to 1.7.1 and update plugin dependencies [#909](https://github.com/ruflin/Elastica/pull/909) 1004- Update php-cs-fixer to 1.10 [#898](https://github.com/ruflin/Elastica/pull/898) 1005- Elastica\QueryBuilder now uses Elastica\QueryBuilder\Version\Latest as default version to avoid empty version classes. [#897](https://github.com/ruflin/Elastica/pull/897) 1006- Update elasticsearch-image to work with ES 1.7.1 [#907](https://github.com/ruflin/Elastica/pull/907) 1007- Local dev environment was refactored to fully work in docker environment. Running tests is now only one command: `make tests` [#901](https://github.com/ruflin/Elastica/pull/901) 1008 1009### Deprecated 1010- Elastica\QueryBuilder\Version\Version150 deprecated in favor of Elastica\QueryBuilder\Version\Latest [#897](https://github.com/ruflin/Elastica/pull/897) 1011 1012 1013## [2.2.0](https://github.com/ruflin/Elastica/releases/tag/2.2.0) - 2015-07-08 1014 1015 1016### Backward Compatibility Breaks 1017- Usage of constant DEBUG and method Elastica\Util::debugEnabled is removed. [#868](https://github.com/ruflin/Elastica/pull/868) 1018- Elastica\Response::getTransferInfo will not return "request_header" by default. [#868](https://github.com/ruflin/Elastica/pull/868) 1019- The Image Plugin is currently not compatible with Elasticearch 1.6.0 1020 1021### Bugfixes 1022- Fixed segmentation fault in PHP7 [#868](https://github.com/ruflin/Elastica/pull/868) 1023- Removed deprecation for Elastica\Type::deleteByQuery [#875](https://github.com/ruflin/Elastica/pull/875) 1024 1025### Improvements 1026- `CallbackStrategy` now will accept any `callable` as callback, not only instance of `Closure`. [#871](https://github.com/ruflin/Elastica/pull/871) 1027- `StrategyFactory` now will try to find predefined strategy before looking to global namespace. [#877](https://github.com/ruflin/Elastica/pull/877) 1028- Update elasticsearch dependency to elasticsearch 1.6.0 https://www.elastic.co/downloads/past-releases/elasticsearch-1-6-0 1029- All elasticsearch plugin dependencies were updated to the newest version. 1030- Methods of classes in `QueryBuilder\DSL` namespace now have exact same signatures as corresponding constructors. [#878](https://github.com/ruflin/Elastica/pull/878) 1031- Constructor of `Aggregation\Filter` now accepts filter as second parameter [#878](https://github.com/ruflin/Elastica/pull/878) 1032- Constructor of `Filter\AbstractMulti` (`BoolAnd`, `BooldOr`) now accepts array of filters as parameter [#878](https://github.com/ruflin/Elastica/pull/878) 1033- Constructor of `Query\Match` now accepts arguments [#878](https://github.com/ruflin/Elastica/pull/878) 1034- Coverage Reporting improved with Codecov [#888](https://github.com/ruflin/Elastica/pull/888) 1035- Added 'query_cache' option for search [#886](https://github.com/ruflin/Elastica/pull/886) 1036 1037## [2.1.0](https://github.com/ruflin/Elastica/releases/tag/2.1.0) - 2015-06-01 1038 1039### Added 1040- Multiple rescore query [#820](https://github.com/ruflin/Elastica/issues/820/) 1041- Support for a custom connection timeout through a connectTimeout parameter. [#841](https://github.com/ruflin/Elastica/issues/841/) 1042- SignificantTerms Aggregation [#847](https://github.com/ruflin/Elastica/issues/847/) 1043- Support for 'precision_threshold' and 'rehash' options for the Cardinality Aggregation [#851] 1044- Support for retrieving id node [#852](https://github.com/ruflin/Elastica/pull/852) 1045- Scroll Iterator [#842](https://github.com/ruflin/Elastica/issues/842/) 1046- Gitter Elastica Chat Room add for Elastica discussions: https://gitter.im/ruflin/Elastica 1047- Introduce PHP7 compatibility and tests. [#837](https://github.com/ruflin/Elastica/pull/837) 1048- `Tool\CrossIndex` for reindexing and copying data and mapping between indices [#853](https://github.com/ruflin/Elastica/pull/853) 1049- CONTIRUBTING.md file added for contributor guidelines. [#854](https://github.com/ruflin/Elastica/pull/854) 1050 1051### Improvements 1052- Introduction of Changelog standard based on http://keepachangelog.com/. changes.txt moved to CHANGELOG.md [#844](https://github.com/ruflin/Elastica/issues/844/) 1053- Make host for all tests dynamic to prepare it for a more dynamic test environment [#846](https://github.com/ruflin/Elastica/pull/846) 1054- Node information is retrieved based on id instead of name as multiple nodes can have the same name. [#852](https://github.com/ruflin/Elastica/pull/852) 1055- Guzzle Http dependency updated to 5.3.* 1056- Remove NO_DEV builds from travis build matrix to speed up building. All builds include no dev packages. 1057- Introduction of benchmark test group to make it easy to run benchmark tests. 1058- Make the docker images directly [available](https://hub.docker.com/u/ruflin/) on the docker registry. This speeds up fetching of the images and automates the build of the images. 1059 1060### Backward Compatibility Breaks 1061- `Elastica\ScanAndScroll::$_lastScrollId` removed: `key()` now always returns the next scroll id [#842](https://github.com/ruflin/Elastica/issues/842/) 1062 1063 1064### Deprecated 1065- Facets are deprecated. You are encouraged to migrate to aggregations instead. [#855](https://github.com/ruflin/Elastica/pull/855/) 1066- Elastica\Query\Builder is deprecated. Use new Elastica\QueryBuilder instead. [#855](https://github.com/ruflin/Elastica/pull/855/) 1067- 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](https://github.com/ruflin/Elastica/pull/837) 1068 1069 1070 1071## [2.0.0](https://github.com/ruflin/Elastica/releases/tag/2.0.0) - 2015-05-11 1072 1073 1074### Backward Compatibility Breaks 1075- Elastica\Query\QueryString::setLowercaseExpandedTerms removed [#813](https://github.com/ruflin/Elastica/issues/813/) 1076- Update elasticsearch dependency to elasticsearch 1.5.2 https://www.elastic.co/downloads/past-releases/elasticsearch-1-5-2 [#834](https://github.com/ruflin/Elastica/issues/834/) 1077- Added deprecation notice to Elastica\Transport\Thrift, Elastica\Transport\Memcached and Elastica\Type::deleteByQuery [#817](https://github.com/ruflin/Elastica/issues/817/) 1078- Escape new symbols in Util::escapeTerm [#795](https://github.com/ruflin/Elastica/issues/795/) 1079 1080### Bugfixes 1081- Fix empty bool query to act as match all query [#817](https://github.com/ruflin/Elastica/issues/817/) 1082- Fixed short match construction in query DSL [#796](https://github.com/ruflin/Elastica/issues/796/) 1083- Index optimize method to return Response object. [#797](https://github.com/ruflin/Elastica/issues/797/) 1084- Fix fluent interface inconsistency [#788](https://github.com/ruflin/Elastica/issues/788/) 1085 1086 1087### Improvements 1088- Add testing on PHP 7 on Travis [#826](https://github.com/ruflin/Elastica/issues/826/) 1089- Allow bool in Query::setSource function [#818](https://github.com/ruflin/Elastica/issues/818/) https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-source-filtering.html 1090- deleteByQuery() implemented in Elastica\Index [#816](https://github.com/ruflin/Elastica/issues/816/) 1091- Add MLT query against documents [#814](https://github.com/ruflin/Elastica/issues/814/) 1092- Added Elastica\Query\SimpleQueryString::setMinimumShouldMatch [#813](https://github.com/ruflin/Elastica/issues/813/) 1093- Added Elastica\Query\FunctionScore::setMinScore [#813](https://github.com/ruflin/Elastica/issues/813/) 1094- Added Elastica\Query\MoreLikeThis::setMinimumShouldMatch [#813](https://github.com/ruflin/Elastica/issues/813/) 1095- Added new methods to Elastica\Aggregation\DateHistogram: setOffset, setTimezone [#813](https://github.com/ruflin/Elastica/issues/813/) 1096- Following methods in Elastica\Aggregation\DateHistogram marked as deprecated: setPreOffset, setPostOffset, setPreZone, setPostZone, setPreZoneAdjustLargeInterval [#813](https://github.com/ruflin/Elastica/issues/813/) 1097- Add Elastica\Facet\DateHistogram::setFactor() [#806](https://github.com/ruflin/Elastica/issues/806/) 1098- Added Elastica\Query\QueryString::setTimezone [#813](https://github.com/ruflin/Elastica/issues/813/) 1099- Add .editorconfig [#807](https://github.com/ruflin/Elastica/issues/807/) 1100- Added Elastica\Suggest\Completion [#808](https://github.com/ruflin/Elastica/issues/808/) 1101- Fix elasticsearch links to elastic domain [#809](https://github.com/ruflin/Elastica/issues/809/) 1102- Added Elastica\Query\Image [#787](https://github.com/ruflin/Elastica/issues/787/) 1103- Add Scrutinizer Code Quality status badge 1104- Added support for percentiles aggregation [#786](https://github.com/ruflin/Elastica/issues/786/) 1105 1106 1107 1108## Changelog before 2.0.0 1109The changelog before version 2.0.0 was organised by date. All changes can be found below. 1110 11112015-02-17 1112- Release v1.4.3.0 1113- Added Elastica\Query\MatchPhrase [#599](https://github.com/ruflin/Elastica/issues/599/) 1114- Added Elastica\Query\MatchPhrasePrefix [#599](https://github.com/ruflin/Elastica/issues/599/) 1115 11162015-02-04 1117- Reset PHP 5.3 tests and enable compatibility for PHP 5.3 again 1118 11192015-02-16 1120- Update elasticsearch compatibility to 1.4.3 [#782](https://github.com/ruflin/Elastica/issues/782/) 1121- Add support for scripted metric aggrations [#780](https://github.com/ruflin/Elastica/issues/780/) 1122 11232015-02-14 1124- Added availability to specify regexp options in \Elastica\Filters\Regexp [#583](https://github.com/ruflin/Elastica/issues/583/) [#777](https://github.com/ruflin/Elastica/issues/777/) 1125- Add HHVM as build in travis [#649](https://github.com/ruflin/Elastica/issues/649/) 1126 11272015-02-11 1128- Fixed issue with OutOfMemory exception in travis builds [#775](https://github.com/ruflin/Elastica/issues/775/) 1129- Add support for filters aggregation [#773](https://github.com/ruflin/Elastica/issues/773/) 1130 11312015-01-27 1132- Housekeeping, coding standard [#764](https://github.com/ruflin/Elastica/issues/764/) 1133- Exception\ElasticsearchException now can be catched like all other exceptions as Exception\ExceptionInterface [#762](https://github.com/ruflin/Elastica/issues/762/) 1134 11352015-01-25 1136- Release v1.4.2.0 1137 11382015-01-23 1139- Added Elastica\Query\Regexp [#757](https://github.com/ruflin/Elastica/issues/757/) 1140 11412015-01-19 1142- Update to elasticsearch 1.4.2 [#378](https://github.com/ruflin/Elastica/issues/378/) 1143- Remove support for PHP 5.3 1144 11452015-01-14 1146- added @return annotation to top_hits aggregation DSL method [#752](https://github.com/ruflin/Elastica/issues/752/) 1147 11482015-01-07 1149- Added Elastica\Aggregation\TopHits [#718](https://github.com/ruflin/Elastica/issues/718/) 1150 11512015-01-05 1152- Vagrantfile updated [#742](https://github.com/ruflin/Elastica/issues/742/) 1153- Plugins updated to ES 1.3.4 1154- Since new version of thrift plugin is compatible with ES 1.3.4, plugin added back to test environment 1155 11562014-12-30 1157- Added: Filter\Range::setExecution, Filter\Terms::setExecution, Filter\Missing::setExistence, Filter\Missing::setNullValue, Filter\HasChild::setMinumumChildrenCount, Filter\HasChild::Filter\HasChild::setMaximumChildrenCount, Filter\Indices::addIndex 1158- Filter\HasChild::setType, Filter\HasParent::setType now support Type instance as argument 1159- Filter\Indices::setIndices, Filter\Indices::addIndex now support Index instance as argument 1160- (BC break) Removed as added by mistake: Filter\HasChild::setScope, Filter\HasParent::setScope, Filter\Nested::setScoreMode, Filter\Bool::setBoost 1161 11622014-12-23 1163- Additional Request Body Options for Percolator [#737](https://github.com/ruflin/Elastica/issues/737/) 1164 11652014-12-19 1166- making sure id is urlencoded when using updateDocument [#734](https://github.com/ruflin/Elastica/issues/734/) 1167- Implement the `weight` in the function score query [#735](https://github.com/ruflin/Elastica/issues/735/) 1168 11692014-12-09 1170- Changed setRealWorldErrorLikelihood to setRealWordErrorLikelihood [#729](https://github.com/ruflin/Elastica/issues/729/) 1171 11722014-11-23 1173- allow to customize the key on a range aggregation [#728](https://github.com/ruflin/Elastica/issues/728/) 1174 11752014-12-14 1176- Added fluent interface to Elastica\Query::setRescore [#733](https://github.com/ruflin/Elastica/issues/733/) 1177 11782014-11-30 1179- Added transport to support egeloen/http-adapter [#727](https://github.com/ruflin/Elastica/issues/727/) 1180 11812014-11-20 1182- add cache control parameters support to Elastica\Filter\Bool [#725](https://github.com/ruflin/Elastica/issues/725/) 1183 11842014-11-19 1185- Avoid remove previously added params when adding a suggest to the query [#726](https://github.com/ruflin/Elastica/issues/726/) 1186 11872014-11-16 1188- Added Elastica\QueryBuilder [#724](https://github.com/ruflin/Elastica/issues/724/) 1189- Update to elasticsearch 1.4.0 1190- Disable official support for PHP 5.3 1191 11922014-11-13 1193- fixed reserved words in queries which composed of upper case letters (Util::replaceBooleanWords) [#722](https://github.com/ruflin/Elastica/issues/722/) 1194 11952014-10-31 1196- Adding PSR-4 autoloading support [#714](https://github.com/ruflin/Elastica/issues/714/) 1197 11982014-10-29 1199- Updated Type::getDocument() exception handling. \Elastica\Exception\ResponseException will be thrown instead of \Elastica\Exception\NotFoundException if the ES response contains any error (i.e: Missing index) (BC break) [#687](https://github.com/ruflin/Elastica/issues/687/) 1200 12012014-10-22 1202- Added Util::convertDateTimeObject to Util class to easily convert \DateTime objects to required format [#709](https://github.com/ruflin/Elastica/issues/709/) 1203 12042014-10-15 1205- Remove ResponseException catch in Type::getDocument() [#704](https://github.com/ruflin/Elastica/issues/704/) 1206 12072014-10-10 1208- Fixed Response::isOk() to work better with bulk update api [#702](https://github.com/ruflin/Elastica/issues/702/) 1209- Adding magic __call() [#700](https://github.com/ruflin/Elastica/issues/700/) 1210 12112014-10-05 1212- ResultSet creation moved to static ResultSet::create() method [#690](https://github.com/ruflin/Elastica/issues/690/) 1213- Accept an options array at Type::updateDocument() [#686](https://github.com/ruflin/Elastica/issues/686/) 1214- Improve exception handling in Type::getDocument() [#693](https://github.com/ruflin/Elastica/issues/693/) 1215 12162014-10-04 1217- Release v1.3.4.0 1218- Update to elasticsearch 1.3.4 [#691](https://github.com/ruflin/Elastica/issues/691/) 1219 12202014-09-22 1221- Update the branch alias in composer.json to match the library version [#683](https://github.com/ruflin/Elastica/issues/683/) 1222 12232014-09-16 1224- Update license in composer.json to match project [#681](https://github.com/ruflin/Elastica/issues/681/) 1225 12262014-09-08 1227- Delete execution permission from non-executable files [#677](https://github.com/ruflin/Elastica/issues/677/) 1228 12292014-08-25 1230- Top-level filter parameter in search has been renamed to post_filter [#669](https://github.com/ruflin/Elastica/issues/669/) [#670](https://github.com/ruflin/Elastica/issues/670/) 1231- Deprecated: Elastica\Query::setFilter() is deprecated. Use Elastica\Query::setPostFilter() instead. [#669](https://github.com/ruflin/Elastica/issues/669/) 1232- Deprecated: Elastica\Query::setPostFilter() passing filter as array is deprecated. Pass instance of AbstractFilter instead. [#669](https://github.com/ruflin/Elastica/issues/669/) 1233 12342014-08-22 1235- Fixed escaping of / character in Elastica\Util::escapeTerm(), removed usage of JSON_UNESCAPED_SLASHES in Elastica\JSON [#660](https://github.com/ruflin/Elastica/issues/660/) 1236 12372014-08-06 1238- Add connection pool and connection strategy 1239 12402014-07-26 1241- Release v1.3.0.0 1242- Prepare Elastica Release v1.3.0.0 1243 12442014-07-25 1245- Update to elasticsearch version 1.3.0 https://www.elastic.co/downloads/past-releases/1-3-0 1246 12472014-07-14 1248 - Add setQuery() method to Elastica\Query\ConstantScore [#653](https://github.com/ruflin/Elastica/issues/653/) 1249 12502014-07-12 1251 - Be able to configure ES host/port via ENV var in test env [#652](https://github.com/ruflin/Elastica/issues/652/) 1252 12532014-07-07 1254 - Fix FunstionScore Query random_score without seed bug. [#647](https://github.com/ruflin/Elastica/issues/647/) 1255 12562014-07-02 1257- Add setPostFilter method to Elastica\Query (https://www.elastic.co/guide/en/elasticsearch/guide/current/_post_filter.html) [#645](https://github.com/ruflin/Elastica/issues/645/) 1258 12592014-06-30 1260- Add Reverse Nested aggregation (https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-reverse-nested-aggregation.html). [#642](https://github.com/ruflin/Elastica/issues/642/) 1261 12622014-06-14 1263- Release v1.2.1.0 1264- Removed the requirement to set arguments filter and/or query in Filtered, according to the documentation: https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-filtered-query.html [#616](https://github.com/ruflin/Elastica/issues/616/) 1265 12662014-06-13 1267- Stop ClientTest->testDeleteIdsIdxStringTypeString from failing 1/3 of the time [#634](https://github.com/ruflin/Elastica/issues/634/) 1268- Stop ScanAndScrollTest->testQuerySizeOverride from failing frequently for no reason [#635](https://github.com/ruflin/Elastica/issues/635/) 1269- rework Document and Script so they can share some infrastructure allowing scripts to specify things like _retry_on_conflict and _routing [#629](https://github.com/ruflin/Elastica/issues/629/) 1270 12712014-06-11 1272- Allow bulk API deletes to be routed [#631](https://github.com/ruflin/Elastica/issues/631/) 1273 12742014-06-10 1275- Update travis to elasticsearch 1.2.1, disable Thrift plugin as not compatible and fix incompatible tests 1276 12772014-06-04 1278- Implement Boosting Query (https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-boosting-query.html) [#625](https://github.com/ruflin/Elastica/issues/625/) 1279 12802014-06-02 1281- add retry_on_conflict support to bulk [#623](https://github.com/ruflin/Elastica/issues/623/) 1282 12832014-06-01 1284- toString updated to consider doc_as_upsert if sent an array source [#622](https://github.com/ruflin/Elastica/issues/622/) 1285 12862014-05-27 1287- Fix Aggragations/Filter to work with es v1.2.0 [#619](https://github.com/ruflin/Elastica/issues/619/) 1288 12892014-05-25 1290- Added Guzzle transport as an alternative to the default Http transport [#618](https://github.com/ruflin/Elastica/issues/618/) 1291- Added Elastica\ScanAndScroll Iterator (https://www.elastic.co/guide/en/elasticsearch/guide/current/scan-scroll.html) [#617](https://github.com/ruflin/Elastica/issues/617/) 1292 12932014-05-13 1294- Add JSON compat library; Elasticsearch JSON flags and nicer error handling [#614](https://github.com/ruflin/Elastica/issues/614/) 1295 12962014-05-12 1297- Update dev builds to phpunit 4.1.* 1298 12992014-05-11 1300- Set processIsolation and backupGlobals to false to speed up tests. processIsolation was very slow with phpunit 4.0.19. 1301 13022014-05-05 1303- Fix get settings on alaised index [#608](https://github.com/ruflin/Elastica/issues/608/) 1304- Added named function for source filtering [#605](https://github.com/ruflin/Elastica/issues/605/) 1305- Scroll type constant to Elastica\Search added [#607](https://github.com/ruflin/Elastica/issues/607/) 1306 13072014-04-28 1308- Added setAnalyzer method to Query\FuzzyLikeThis Class and fixed issue with params not being merged [#611](https://github.com/ruflin/Elastica/issues/611/) 1309- Typo fixes [#600](https://github.com/ruflin/Elastica/issues/600/), [#602](https://github.com/ruflin/Elastica/issues/602/) 1310- Remove unreachable return statement [#598](https://github.com/ruflin/Elastica/issues/598/) 1311 13122014-04-27 1313- Release v1.1.1.1 1314- Fix missing use in TermsStats->setOrder() [#597](https://github.com/ruflin/Elastica/issues/597/) 1315- Replace all instances of ElasticSearch with Elasticsearch [#597](https://github.com/ruflin/Elastica/issues/597/) 1316 13172014-04-24 1318- Fixing the Bool filter with Bool filter children bug [#594](https://github.com/ruflin/Elastica/issues/594/) 1319 13202014-04-22 1321- Remove useless echo in the Memcache Transport object [#595](https://github.com/ruflin/Elastica/issues/595/) 1322 13232014-04-21 1324- escape \ by \\ [#592](https://github.com/ruflin/Elastica/issues/592/) 1325 13262014-04-20 1327- Handling of HasChild type parsing bug [#585](https://github.com/ruflin/Elastica/issues/585/) 1328- Consolidate Index getMapping tests [#591](https://github.com/ruflin/Elastica/issues/591/) 1329- Fix Type::getMapping when using an aliased index [#588](https://github.com/ruflin/Elastica/issues/588/) 1330 13312014-04-19 1332- Release v1.1.1.0 1333- Update to elasticsearch 1.1.1 https://www.elastic.co/downloads/past-releases/1-1-1 1334- Remove CustomFiltersScore and CustomScore query as removed in elasticsearch 1.1.0 https://github.com/elasticsearch/elasticsearch/pull/5076/files 1335- Update Node Info to use plugins instead of plugin (https://github.com/elasticsearch/elasticsearch/pull/5072) 1336- Fix mapping issue for aliases [#588](https://github.com/ruflin/Elastica/issues/588/) 1337 13382014-04-17 1339- Only trap real JSON parse errors in Response class [#586](https://github.com/ruflin/Elastica/issues/586/) 1340 13412014-04-09 1342- Added Cardinality aggregation [#581](https://github.com/ruflin/Elastica/issues/581/) 1343 13442014-04-07 1345- Support for Terms filter lookup options [#579](https://github.com/ruflin/Elastica/issues/579/) 1346 13472014-03-29 1348- Update to elasticsearch 1.1.0 https://www.elastic.co/downloads/past-releases/1-1-0 1349 13502014-03-26 1351- Fixed Query\Match Fuzziness parameter type [#576](https://github.com/ruflin/Elastica/issues/576/) 1352 13532014-03-24 1354- Release v1.0.1.2 1355- Added Filter\Indices [#574](https://github.com/ruflin/Elastica/issues/574/) 1356 13572014-03-25 1358- Allow json string as data srouce for Bulk\Action on update [#575](https://github.com/ruflin/Elastica/issues/575/) 1359 13602014-03-20 1361- Allow for request params in delete by query calls [#573](https://github.com/ruflin/Elastica/issues/573/) 1362 13632014-03-17 1364- Added filters: AbstractGeoShape, GeoShapePreIndexed, GeoShapeProvided [#568](https://github.com/ruflin/Elastica/issues/568/) 1365 13662014-03-15 1367- Percolate existing documents and add percolate options ([#570](https://github.com/ruflin/Elastica/issues/570/)) 1368 13692014-03-14 1370- Added Query\Rescore [#441](https://github.com/ruflin/Elastica/issues/441/) 1371 13722014-03-13 1373- Added missing query options for MultiMatch (operator, minimum_should_match, zero_terms_query, cutoff_frequency, type, fuzziness, prefix_length, max_expansions, analyzer) [#569](https://github.com/ruflin/Elastica/issues/569/) 1374- Added missing query options for Match (zero_terms_query, cutoff_frequency) [#569](https://github.com/ruflin/Elastica/issues/569/) 1375 13762014-03-11 1377- Fixed request body reuse in http transport [#567](https://github.com/ruflin/Elastica/issues/567/) 1378 13792014-03-08 1380- Release v1.0.1.1 1381- Enable goecluster-facet again as now compatible with elasticsearch 1.0 on travis 1382- Run elasticsearch in the background to not have log output in travis build 1383- Set memache php version as environment variable 1384- Update to memcache 3.0.8 for travis 1385 13862014-03-07 1387- Add snapshot / restore functionality (Elastica\Snapshot) [#566](https://github.com/ruflin/Elastica/issues/566/) 1388 13892014-03-04 1390- Add PHP 5.6 to travis test environment 1391- Improve performance of Elastica/Status->getIndicesWithAlias and aliasExists on clusters with many indices [#563](https://github.com/ruflin/Elastica/issues/563/) 1392 13932014-03-02 1394- Release v1.0.1.0 1395- Fixed Type->deleteByQuery() not working with Query objects [#554](https://github.com/ruflin/Elastica/issues/554/) 1396 13972014-02-27 1398- Update to elasticsearch 1.0.1. Update Thrift and Geocluster plugin. 1399 14002014-02-25 1401- Add JSON_UNESCAPED_UNICODE and JSON_UNESCAPED_SLASHES options in Elastica/Transport/Http, Elastica/Bulk/Action [#559](https://github.com/ruflin/Elastica/issues/559/) 1402 14032014-02-20 1404- Fixed unregister percolator (still used _percolator instead of .percolator). removed duplicate slash from register percolator route. [#558](https://github.com/ruflin/Elastica/issues/558/) 1405 14062014-02-17 1407- Throw PartialShardFailureException if response has failed shards 1408- Elastica/Aggregations/GlobalAggragation not allowed as sub aggragation [#555](https://github.com/ruflin/Elastica/issues/555/) 1409 14102014-02-14 1411- Add methods setSize, setShardSize to Elastica/Aggregation/Terms 1412- Elastica/Aggregation/GlobalAggregationTest fixed bug where JSON returned [] instead of {} 1413- Elastica/ResultSet added method hasAggregations 1414 14152014-02-13 1416- Moved from Apache License to MIT license 1417 14182014-02-12 1419- Release v1.0.0.0 1420- Updated to elasticsearch 1.0: https://www.elastic.co/blog/1-0-0-released/ 1421 14222014-02-11 1423- Add aggregations 1424 14252014-02-08 1426- Setting shard timeout doesn't work [#547](https://github.com/ruflin/Elastica/issues/547/) 1427 14282014-02-04 1429- Remove Elastica\Query\Field and Elastica\Query\Text, which are not supported in ES 1.0.0.RC1 1430- Minor tweaking of request and result handling classes to adjust for changes in ES 1.0.0.RC1 1431- Update mapper-attachments plugin to version 2.0.0.RC1 in .travis.yml 1432- Adjust tests to account for changes in ES 1.0.0.RC1 1433- Prevent the geocluster-facet plugin from being installed in test/bin/run_elasticsearch.sh as the plugin has not yet been updated for ES 1.0.0.RC1 1434 14352014-01-06 1436- Update to elasticsearch v1.0.0.RC2 1437 14382014-01-02 1439- Added Elastica\Query\DisMax 1440- Update to elasticsearch v1.0.0.RC1 1441 14422014-01-02 1443- Release v0.90.10 1444 14452014-01-31 1446- Fix _bulk delete proxy methods if type or index not explicitly defined. 1447 14482014-01-28 1449- Add _bulk delete proxy methods to Index and Type for consistency. 1450- Use the HTTP response code of GET requests (getDocument), instead of extists/found json property. 1451 14522014-01-22 1453- Add getParam & getProperties methods to Elastica\Type\Mapping 1454 14552014-01-21 1456- Code coverage generation for coveralls.io added: https://coveralls.io/r/ruflin/Elastica 1457- Add support for shard timeout to the Bulk api. 1458 14592014-01-17 1460- Fix typo in constant name: Elastica\Query\FunctionScore::DECAY_GUASS becomes DECAY_GAUSS 1461 14622014-01-13 1463- Add support for _bulk update 1464 14652014-01-14 1466- added \Elastica\Exception\ResponseException::getElasticsearchException() 1467- Changed logger default log level to debug from info 1468 14692014-01-13 1470- Update to elasticsearch 0.90.10 1471- Add Elastica\Facet\TermsStats::setOrder() 1472 14732014-01-08 1474- Adding analyze function to Index to expose the _analyze API 1475 14762014-01-07 1477- Document::setDocAsUpsert() now returns the Document 1478 14792013-12-18 1480- Update to Elasticsearch 0.90.8 1481- Add support for simple_query_string query 1482 14832013-12-15 1484- Add support for filter inside HasChild filter 1485- Add support for filter inside HasParent filter 1486 14872013-12-12 1488- Always send scroll_id via HTTP body instead of as a query param 1489- Fix the manner in which suggestion results are returned in \Elastica\ResultSet and adjust associated tests to account for the fix. 1490- Add \Elastica\Resultset::hasSuggests() 1491 14922013-12-11 1493- Pass arguments to optimize as query 1494- Add refreshAll on Client 1495 14962013-12-07 1497- Added Result::hasFields() and Result::hasParam() methods for consistency with Document 1498 14992013-12-07 1500- Escape slash in Util::escapeTerm, as it is used for regexp from Elastic 0.90 1501 15022013-12-05 1503- Add *.iml to .gitignore 1504- Refactor suggest implementation (\Elastica\Suggest, \Elastica\Suggest\AbstractSuggest, and \Elastica\Suggest\Term) to more closely resemble query implementation. (BC break) 1505- \Elastica\Search::addSuggest() has been renamed to \Elastica\Search::setSuggest() 1506- \Elastica\Query::addSuggest() has been renamed to \Elastica\Query::setSuggest() 1507- Add \Elastica\Suggest\Phrase, \Elastica\Suggest\CandidateGenerator\AbstractCandidateGenerator, and \Elastica\Suggest\CandidateGenerator\DirectGenerator 1508 (see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters-phrase.html) 1509 15102013-12-04 1511- Remove boost from FunctionScore::addFunction because this is not supported by elasticsearch 1512 15132013-12-02 1514- Issue [#491](https://github.com/ruflin/Elastica/issues/491/) resolved 1515 15162013-12-01 1517- Issue [#501](https://github.com/ruflin/Elastica/issues/501/) resolved 1518- satooshi/php-coveralls package added for coverall.io 1519- Multiple badges for downloads and latest stable release added 1520 15212013-11-30 1522- Remove facets param from query if is empty array 1523- Add size param to API for TermsStats 1524 15252013-11-23 1526- Release v0.90.7.0 1527 15282013-11-19 1529- Updated geocluster-facet to 0.0.9 1530 15312013-11-18 1532- Added \Elastica\Filter\Regexp 1533 15342013-11-16 1535- Remove wrong documentation for "no limit" [#496](https://github.com/ruflin/Elastica/issues/496/) 1536- Update to elasticsearch 0.90.7 1537 15382013-11-03 1539- Issue [#490](https://github.com/ruflin/Elastica/issues/490/): Set Elastica\Query\FunctionScore::DECAY_EXPONENTIAL to "exp" instead of "exponential" 1540 15412013-10-29 1542- Elastica_Type::exists() added 1543 See https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-types-exists.html#indices-types-exists 1544 15452013-10-27 1546- Adapted possible values (not only in) for minimum_should_match param based on elasticsearch documetnation https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-minimum-should-match.html 1547 15482013-10-27 1549- Release v0.90.5.0 1550 15512013-10-26 1552- Update to elasticsearch 0.90.5 1553 15542013-10-21 1555- Fix \Elastica\Filter\HasParent usage of \Elastica\Query as to not collide with \Elastica\Filter\Query, bring \Elasitca\Filter\HasChild into line 1556 15572013-10-01 1558- Also pass the current client object to the failure callback in \Elastica\Client. 1559 15602013-09-20 1561- Update to geocluster-facet 0.0.8 1562- Add support for term suggest API 1563 See https://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters-term.html 1564 15652013-09-18 1566- Fix \Elastica\Filter\HasChild usage of \Elastica\Query as to not collide with \Elastica\Filter\Query namespace 1567 15682013-09-17 1569- Update to elasticsearch 0.90.4 1570- Add support for function_score query 1571- Skip geocluster-facet test if the plugin is not installed 1572- Correct \Elastica\Test\ClientTest to catch the proper exception type on connection failure 1573- Fix unit test errors 1574 15752013-09-14 1576- Nested filter supports now the setFilter method 1577 15782013-09-03 1579- Support isset() calls on Result objects 1580 15812013-08-27 1582- Add \ArrayAccess on the ResultSet object 1583 15842013-08-25 1585- Update to elasticsearch 0.90.3 1586 15872013-08-25 1588- Release v0.90.2.0 1589 15902013-08-20 1591- Support for "proxy" param for http connections 1592 15932013-08-17 1594- Add support for fields parameter in Elastica_Type::getDocument() 1595 15962013-08-13 1597- Add a getQuery method on the FilteredQuery object 1598 15992013-08-01 1600- Second param to \Elastica\Search.php:count($query = '', $fullResult = false) added. If second param is set to true, full ResultSet is returned including facets. 1601 16022013-07-16 1603- Plugin geocluster-facet support added 1604 16052013-07-02 1606- Add Query\Common 1607- Can now create a query by passing an array to Type::search() 1608 16092013-07-01 1610- Add Filter\GeohashCell 1611 16122013-06-30 1613- Revamped upsert so that Scripts are now first class citizens. (BC break) 1614 See http://elastica.io/migration/0.90.2/upsert.html 1615- Implemented doc_as_upsert. 1616 16172013-06-29 1618- Update to elasticsearch 0.90.2 1619- Enabled ES_WAIT_ON_MAPPING_CHANGE for travis builds 1620 16212013-06-25 1622- Added upsert support when updating a document with a partial document or a script. 1623 16242013-06-23 1625- Add filtered queries to the percolator API. 1626 16272013-06-21 1628- Correct class name for TermTest unit test 1629- Implement terms lookup feature for terms filter 1630 16312013-06-14 1632- Fix support for making scroll queries once the scroll has been started. 1633 16342013-06-07 1635- Release 0.90.1.0 1636 16372013-06-05 1638- Changed package name to lowercase to prevent potential issues with case sensitive file systems and to refelect the package name from packagist.org. 1639 If you are requiring elastica in your project you might want to change the name in the require to lowercase, although it will still work if written in uppercase. 1640 The composer autoloader will handle the package correctly and you will not notice any difference. 1641 If you are requiring or including a file by hand with require() or include() from the composer vendor folder, pay attention that the package name in 1642 the path will change to lowercase. 1643- Add Bulk\Action\UpdateDocument. 1644- Update Bulk\Action\AbstractDocument and Bulk\Action to enable use of OP_TYPE_UPDATE. 1645- Update .travis.yml to use Elasticsearch version 0.9.1, as bulk update is a new feature in 0.9.1. 1646 16472013-06-04 1648- Elastica\Client::_configureParams() changed to _prepareConnectionParams(), which now takes the config array as an argument 1649 16502013-06-03 1651- Add getPlugins and hasPlugin methods to Node\Info 1652 16532013-05-30 1654- Update Index\Status::getAliases() to use new API 1655- Update Index\Status::getSettings() to use new API 1656 16572013-05-29 1658- Add _meta to mapping. [#330](https://github.com/ruflin/Elastica/issues/330/) 1659 16602013-05-27 1661- Added parameters to implement scroll 1662 16632013-05-23 1664- add support PSR-3(https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md) 1665- Elastica\Log implement LoggerInterface(extends Psr\Log\AbstractLogger) 1666 if you want use logging need install https://github.com/php-fig/log for example (composer require psr/log:dev-master) 1667 if use Elastica\Log inside Elastica\Client nothing more is needed 1668 if use Elastica\Log outside we need use as(https://github.com/php-fig/log) for example Elastica\Log::info($message) or Elastica\Log::log(LogLevel::INFO,$message) 1669- Elastica\Client add setLogger for setting custom Logger for example Monolog(https://github.com/Seldaek/monolog) 1670 16712013-05-18 1672- Elastica\Index::exists fixed for 0.90.0. HEAD request method introduced 1673- Elastica\Filter\AbstractMulti::getFilters() added 1674- Implement Elastica\Type\Mapping::enableAllField 1675- Refresh for Elastica\Index::flush implemented [#316](https://github.com/ruflin/Elastica/issues/316/) 1676- Added optional parameter to filter result while percolate [#384](https://github.com/ruflin/Elastica/issues/384/) 1677 16782013-05-07 1679- Added EXPERIMENTAL DocumentObjectInterface to be used with Type::addObject()/addObjects() 1680 16812013-04-23 1682- Removed Elastica\Exception\AbstractException 1683- All Exceptions now implement Elastica\Exception\ExceptionInterface 1684 16852013-04-17 1686- Query\Fuzzy to comply with DSL spec. Multi-field queries now throw an exception. Implemented: Query\Fuzzy::setField, Query\Fuzzy::setFieldOption. 1687- Query\Fuzzy::addField has been deprecated. 1688 16892013-04-12 1690- Adding max score information in ResultSet 1691- Adding test for the ResultSet class 1692 16932013-03-20 1694- Removal of unsupported minimum_number_should_match for Boolean Filter 1695 16962013-02-25 1697- Added Elastica\Bulk class responsible for performing bulk requests. New bulk requests implemented: Client::deleteDocuments(), Bulk::sendUdp() 1698 16992013-02-20 1700- Release candidate 0.20.5.0.RC1 1701 17022013-02-14 1703- Added factory for transports that is used by the Connection class 1704- The transport instances now has support for parameters that can be injected by specifying an array as a transport when creating the Elastica client 1705 17062013-02-08 1707- Terms->setScript() Added, namespace Elastica\Facet 1708 17092013-01-31 1710- Removed deprecated method Type::getType() 1711- Removed deprecated old constructor call in Filter\GeoDistance::__construct() 1712- Removed deprecated method Filter\Script::setQuery() 1713- Removed deprecated methods Query\QueryString::setTieBraker() and Query\QueryString::setQueryString() 1714- Removed deprecated methods Query\Builder::minimumShouldMatch() and Query\Builder::tieBreaker() 1715 17162013-01-25 1717- Add get/set/has/remove methods to Document 1718- Add magic methods __get/__set/__isset/__unset to Document 1719- Document::add method became deprecated, use set instead 1720- Populate document id created by elasticsearch on addDocument()/addDocuments() call if no document id was set 1721- Populate updated fields in document on Client::updateDocument() call if fields options is set 1722 17232013-01-24 1724- Added serialization support. Objects can be added to elastica directly when a serializer callable is configured on \Elastica\Type 1725 17262013-01-21 1727- Added Thrift transport. Ir requires installing munkie/elasticsearch-thrift-php package and elasticsearch-tranport-thrift plugin should be installed in elastcisearch 1728 17292013-01-13 1730- Add version option to Elastica_Search::search 1731- Remove compatibility for PHP 5.2 1732- Changed all syntax using namespaces, in compliance with PSR-2. 1733- Usage of composer for lib and test autoloading 1734- Added PHPUnit as a dev dependency in composer.json 1735- All tests were rewritten for new syntax. 1736- All tests where moved in Elastica\Test namespace 1737- All tests now inherit from Elastica\Test\Base 1738- Removed all executable flags on files where not needed. 1739- Update to elasticsearch 0.20.2 1740- Refactored Elastica_Script and added it support in Elastica_Query_CustomFiltersScore, Elastica_Query_CustomScore and Elastica_Filter_Script 1741- Refactored Elastica_Client::updateDocument() method to support partial document update. $data can be Elastic_Script, Elastic_Document or array. 1742- Elastica_Type::updateDocument() now takes Elastica_Document instead of Elastica_Script (BC break). Script can be set to document to perform script update. 1743 17442012-12-23 1745- Elastica_Client config param "servers" to "connections" renamed. "headers" and "curl" are now a config param inside "connections" 1746- Elastica_Connection added to allow connection management (enabled / disable) 1747- Refactoring of Elastica_Request. Takes Elastica_Connection in constructor instead of Elastica_Client 1748- Elastica_Transport refactored 1749- Elastica_Log refactored 1750- Renamed Elastica_Exception_Client to Elastica_Exception_Connection 1751- Use Elastica_Connection for the following constants: DEFAULT_PORT, DEFAULT_HOST, DEFAULT_TRANSPORT, TIMEOUT 1752 17532012-11-28 1754- Added Elastica_Filter_GeoDistanceRange filter 1755 17562012-11-23 1757- Simplified Elastica_Document data handling by extending Elastica_Param 1758 17592012-11-10 1760- Added Elastica_Cluster_Health, Elastica_Cluster_Health_Index and Elastica_Cluster_Health_Shard which wrap the _cluster/health endpoint. 1761- Added Elastica_Document::setId() 1762- Added options parameter to Elastica_Type::getDocument() 1763- Added Elastica_Query_Filtered::getFilter() 1764 17652012-10-30 1766- Elastica_Search implement Elastica_Searchable interface 1767 17682012-10-28 1769- Add Elastica_Filter_HasParent and Elastic_Query_HasParent 1770 17712012-08-11 1772- Release v0.19.8.0 1773- Elastica_Query_Prefix added 1774 17752012-07-26 1776- Change Elastica_Filter_GeoDistance::__construct(), accepts geohash parameter (BC break, before: ($key, $latitude, $longitude, $distance), after: ($key, $location, $distance) where $location is array('lat' => $latitude, 'lon' => $longitude) or a geohash) 1777 17782012-07-17 1779- Changed naming for several methods to camelCase 1780- Enforced PSR1 code style, as per https://github.com/pmjones/fig-standards/blob/psr-1-style-guide/proposed/PSR-1-basic.md 1781- Added Elastica_Script::toArray 1782- Added Elastica_ScriptFields 1783- Elastica_Query::setScriptFields now takes Elastica_ScriptFields or associative array as argument, the old implementation was bogus. 1784 17852012-06-24 1786- Simplify Elastica_Type::search and Elastica_Index::search by using Elastica_Search 1787- Implement Elastica_Filter_Abstract::setCache and Elastica_Filter_Abstract::setCacheKey 1788- Add Elastica_Param::hasParam 1789- Remove unsupported use of minimum number should match for Boolean Filter 1790- Remove old style path creation through params in Elastica_Index::create and Elastica_Search::search 1791 17922012-06-22 1793- Add Elastica_Filter_Limit 1794- Add getters+setters for Index Setting blocks 'read', 'write' and 'metadata' 1795- Add Elastica_Filter_MatchAll 1796 17972012-06-20 1798- Facet scope added 1799 18002012-06-09 1801- Change $_parent to null to also support 0 for an id 1802- Fix Elasitca_Document->toArray() 1803 18042012-05-01 1805- Release v0.19.3.0 1806- MoreLikeThis Query in Elastica_Document 1807- Add query param for request (allows GET params) 1808 18092012-03-04 1810- Node info call update. The receive os info and more, param is needed. By default, only basics are returned 1811- Release v0.19.0.0 which is compatible with ES 0.19.0 https://www.elastic.co/downloads/past-releases/0-19-0 1812 18132012-02-21 1814- Allow percolate queries in bulk requests 1815- Fix memory leak in curl requests 1816 18172012-01-23 1818- Packagist added http://packagist.org/ 1819 18202012-01-15 1821- Vagrantfile for vagrant environment with elasticsearch added. Run: vagrant up 1822 18232012-01-08 1824- Allow to set curl params over client config [#106](https://github.com/ruflin/Elastica/issues/106/) [#107](https://github.com/ruflin/Elastica/issues/107/) 1825- Add the possibility to add path or url in config for a request [#120](https://github.com/ruflin/Elastica/issues/120/) 1826 18272012-01-04 1828- Elastica_Index::exists() and Elastica_Cluster::getIndexNames() added 1829 18302012-01-01 1831- Elastica_Cluster_Settings added 1832- Read only feature for cluster and index added. This feature is elasticsearch >0.19.0 only. ES 0.19.0 release is not out yet 1833 18342011-12-29 1835- Elastica_Type::deleteByQuery implemented 1836 18372011-12-20 1838- Release v0.18.6.0 1839 18402011-12-19 1841- Percolator for Type and Documents added 1842 18432011-12-06 1844- Elastica_Percolator added. See tests for more details 1845 18462011-12-02 1847- Rename Elastica_Type::getType() to Elastica_Type::getName(), getType() is now deprecated 1848 18492011-12-01 1850- Elastica_Filter_Term::addTerm renamed to setTerm, Elastica_Filter_Term::setTerm renamed to setRawTerm 1851- Elastica_Query_Term::addTerm renamed to setTerm, Elastica_Query_Term::setTerm renamed to setRawTerm 1852 18532011-11-30 1854- Release v0.18.5.0 1855 18562011-11-28 1857- Elastica_Filter_Nested added 1858 18592011-11-26 1860- Elastica_Search::addIndices(), Elastica_Search::addTypes() added 1861 18622011-11-20 1863- Release v0.18.4.1 1864- Elastica_Log added for logging. Has to be passed as client config to enable 1865- Elastica blogging introduced: http://ruflin.com/en/elastica 1866 18672011-11-17 1868- Release v0.18.4.0 1869- Support for Travis CI added: http://travis-ci.org/ruflin/Elastica 1870 18712011-11-07 1872- Elastica_Index_Stats added 1873 18742011-11-05 1875- Elastica_Query_Nested added 1876 18772011-10-29 1878- TTL for document and mapping added 1879 18802011-10-28 1881- Refactored Elastica_Query_CustomScore::addCSParam to ::addParams 1882- Rename Elastica_Query_CustomScore::addParam to ::addCSParam 1883- Release v0.18.1.0 1884 18852011-10-20 1886- Release v0.17.9.0 1887- Elastica_Filter_Type added 1888 18892011-10-19 1890- Elastica_Query_CustomFilterScore added 1891 18922011-10-15 1893- API Documentation changed to DocBlox 1894 18952011-10-10 1896- Bug fixing 1897- Release v0.17.8.0 added 1898 18992011-09-19 1900- Release v0.17.7.0 added 1901- Release v0.17.6.1 added 1902 19032011-09-18 1904- Elastica_Exception_ExpectedFieldNotFound renamed to Elastica_Exception_NotFound 1905 19062011-08-25 1907- Https transport layer added 1908 19092011-08-22 1910- Typo in Terms query fixed (issue [#74](https://github.com/ruflin/Elastica/issues/74/)) 1911 19122011-08-15 1913- Refactoring HTTP connection to keep alive connection -> speed improvement during using the same client 1914- Release v0.17.6.0 added 1915 19162011-08-09 1917- Automatic creation of id for documents added. This was more a bug 1918- Release v0.17.4.0 added 1919 19202011-08-08 1921- Elastica_Query_Text added 1922- Params (constructor) of Elastica_Filter_GeoBoundingBox changed (array instead of single params) 1923 19242011-08-07 1925- Elastica_Query_MoreLikeThis added by @juneym. Still work under progress 1926- Refactoring Queries and Filters to use Elastica_Param. Adding tests 1927 19282011-08-05 1929- Elastica_Filter_Abstract enhanced for more general usage (set/get/addParam(s)) added 1930 19312011-08-04 1932- Release v0.17.3.0 added 1933- Elastica_Index_Settings::set/get response updated. get('...') does not require 'index.' in front anymore 1934- Nodes and Cluster shutdown added 1935- Elastica_Node::getIp() and getPort() added 1936 19372011-07-30 1938- Readd merge_factor to settings. Now working as expected. Index has to be closed first. 1939 19402011-07-29 1941- Release tag v0.17.2.0 added. Elastica is compatible with elasticsearch 0.17.2 1942 19432011-07-22 1944- Elastica_Index_Settings::getMergePolicyMergeFactor and set removed because of enhanced merge policy implementation in ES 0.17.0 https://github.com/elasticsearch/elasticsearch/issues/998 1945- Release tav v0.17.1.0 added 1946 19472011-07-21 1948- Elastica_Query_HasChild and _parent feature added by fabian 1949- Elastica_Filter_GeoBoundingBox added by fabian 1950 19512011-07-20 1952- Elastica_Query_Builder added by chrisdegrim 1953 19542011-07-19 1955- Release tag v0.17.0.0 added. Elastica is compatible with elasticsearch 0.17.0 1956 19572011-07-18 1958- ResultSet::hasFacets added 1959- QueryString useDisMax added 1960 19612011-07-15 1962- Facet/DateHistogram and Facet/Historgram added 1963- Documentation pages added unter http://ruflin.github.com/Elastica 1964- Release tag v0.16.4.0 added 1965 19662011-06-19 1967- Add support for multiple servers to Elastica_Client (issue [#39](https://github.com/ruflin/Elastica/issues/39/)) 1968 19692011-06-16 1970- Support for multiple index, type queries and _all queries added through Elastica_Search object 1971- Elastica_Index::clearCache added to clean cache 1972- Elastica_Index::flush added 1973 19742011-06-07 1975- Elastica_Index::setNumberOfShards removed as not supported after creating index 1976 19772011-05-11 1978- Refactor client constructor. Elastica_Client::__construct(array $config) now takes a config array instead of host and port 1979 19802011-05-08 1981- Elastica_Query_QueryString::escapeTerm move to Elastica_Util::escapeTerm 1982 19832011-04-29 1984- Added getParam to Elastica_Result that more values can be retrieved from the hit array 1985- Elastica_Filter_Ids added https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-ids-filter.html 1986- getMergePolicyMergeFactor and getRefreshInterval to Elastica_Type_Settings added. If no value is set, default values are returned 1987 19882011-04-28 1989- Release of version 0.16.0.0 (see new version naming structure in README) 1990 19912011-04-27 1992- Refactoring of Elastica_Type::setMapping. No source parameter anymore. 1993- Elastica_Type_Mapping object introduced to set more fine grained mapping 1994 19952011-04-17 1996- Elastica_Filter_Exists added 1997 19982011-04-14 1999- Elastica_Type getCount replace by count() 2000- Count has now optional query parametere 2001 20022011-04-01 2003- Renaming of functions in Elastica_Query_Terms and Ela-stica_Query_Filter to fit new naming convention. setTerms, addTerm have different API now! 2004 20052011-03-31 2006- Deprecated code removed 2007- Break backward compatibility to 0.15.1 (versions introduced by wlp1979) 2008 20092011-03-30 2010- Filtered query introduced 2011- setRawArguments in Elastica_Query is now setParam 2012- open / close for index added 2013- Remove Elastica_Filter and Elastica_Facets because not needed anymore 2014 20152011-03-29 2016- Renaming Elastica_Filter->addQuery, addFilter to setQuery, setFilter 2017- Add parts of Facets API 2018- Add facet Terms 2019- Renaming Elastica_Query->addFilter to setFilter 2020 20212011-03-24 2022- Renaming of Elastica_Status_Index to Elastica_Index_Status => API Change! 2023- IndexSettings added for improved bulk updating https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-update-settings.html 2024 20252011-03-21 2026- Node object added 2027- Node_Info and Node_Stats added 2028- Refactoring of Cluster object 2029 20302011-03-13 2031- changes.txt introduced 2032- getResponse in Elastica_Response renamed to getData. getResponse now deprecated 2033- Index status objects added 2034- getIndexName in Elastica_Index renamed to getName. getIndexName is deprecated 2035 20362011-03-21 2037- ChildrenAggregation added - https://www.elastic.co/guide/en/elasticsearch/guide/current/children-agg.html 2038