All Versions
44
Latest Version
Avg Release Cycle
103 days
Latest Release
-

Changelog History
Page 1

  • v7.2.0 Changes

    Backward Compatibility Breaks

    • ⚡️ 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
    • ⚡️ 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 ### ➕ Added
    • ➕ Added PHPStan at level 3 by @franmomu #2064
    • ➕ Added coverage check to CI by @franmomu #2071
    • ➕ Added string as a valid type for data in Request by @franmomu #2078
    • ➕ Added missing throws PHPDoc tags by @franmomu #2077
    • ➕ Added Search::addIndexByName(), Search::hasIndexByName() and Search::addIndicesByName() by @franmomu #2103 ### 🔄 Changed
    • ⚡️ Updated symfony/phpunit-bridge to 6.0 by @franmomu #2067
    • ⚡️ Updated php-cs-fixer to 3.8.0 #2074
    • ⚡️ Updated composer-normalize to 2.2.28 by @deguif #2084
    • Increased PHPStan level to 4 #2080
    • ExceptionInterface extends Throwable #2083
    • 🔄 Changed value in SetProcessor to accept mixed instead of string by @franmomu #2082
    • ⚡️ Updated Query::create PHPDoc to include supported types and propagate it to callers by @franmomu #2088
    • ⚡️ Update some iterable types in PHPDoc to be more specific by @franmomu #2092
    • ⚡️ Updated AwsAuthV4Test adding assertions for exception type by @franmomu #2094 ### 🗄 Deprecated
    • Deprecated Elastica\Reindex::WAIT_FOR_COMPLETION_FALSE, use a boolean as parameter instead by @franmomu #2070
    • Passing anything else than a boolean as 1st argument to Reindex::setWaitForCompletion, pass a boolean instead by @franmomu #2070
    • 🗄 Deprecated passing a string as 1st argument to Search::addIndex() and Search::hasIndex(), pass an Index instance instead by @franmomu #2103
    • 🗄 Deprecated passing an array of string as 1st argument to Search::addIndices(), use an array of Index instances by @franmomu #2103

    ✂ Removed

    • ✂ Removed egeloen/http-adapter as suggested package since the project is abandoned by @franmomu #2069
    • ✂ Removed 0 as valid request data using Analyze API by @franmomu #2068
    • ✂ Removed dead code in AwsAuthV4Test by @franmomu #2073 ### 🛠 Fixed
    • 🛠 Fixed some PHPDoc types adding null as possible value by @franmomu #2070 and #2087
    • 🛠 Fixed passing wrong types to GapPolicyInterface::setGapPolicy(), Document::setDocAsUpsert() and Connection::setPort() methods by @franmomu #2081
    • 🛠 Fixed Http PHPDoc adding \CurlHandle type for Curl connection by @franmomu #2086
    • 🛠 Fixed case mismatch in method calls by @franmomu #2087
    • 🛠 Fixed MoreLikeThis::setLike() PHPDoc allowing Document by @franmomu #2091
    • 🛠 Fixed Term::setTerm() PHPDoc allowing scalar values for $value parameter by @franmomu #2094
    • Fixed DateHistogram deprecation: use fixed_internal or calendar_interval instead of interval by @VincentLanglet #2099
  • v7.1.5 Changes

    ➕ Added

    • ➕ Added explicit return annotation to Elastica\Multi\ResultSet::current() and Elastica\Multi\ResultSet::offsetGet() by @franmomu 2056
    • ➕ Add throwing \Elastica\Exception\RequestEntityTooLargeException on HTTP-413 responses in \Elastica\Bulk by @Vetaxon 2055
  • v7.1.4 Changes

    ➕ Added

    • ➕ Added support for symfony/deprecation-contracts 3.0 by @rguennichi #2047
    • Added aggregation auto_date_histogram @andriinavrotskii #2051 ### 🛠 Fixed
    • 🛠 Fixed version parameters for DeleteDocument by @pheyse24 #2048
    • 🛠 Fixed version parameters for Index::addDocument() by @pidera #2050
  • v7.1.3 Changes

    ➕ Added

    • ➕ Added support for scripted upsert on bulk requests by @dsgrillo #1974
    • ➕ Added Elastica\Aggregation\CumulativeSum by @limenet #1987
    • ➕ Added ignore_failure option to suitable ingest processors by @deguif #2003
    • ➕ Added ignore_missing option to lowercase, remove, trim and uppercase processors by @deguif #2001
    • ➕ Added allow_duplicates option to append processor by @deguif #2004
    • ➕ Added bytes processor by @deguif #2008
    • ➕ Added indices_boost option to Elastica\Query by @deguif #2018
    • ➕ Added Elastica\Query\Terms::setBoost() method to configure boost by @deguif #2035
    • ➕ Added Elastica\Query\TermsSet query by @mamchyts #2020
    • ➕ Added terms_set in query builder by @deguif #2036
    • ➕ Added Elastica\Aggregation\Traits\BucketsPathTrait to configure buckets_path on aggregations by @deguif #2037 #2039
    • 👍 Allowed to configure a sub key when adding a param with Elastica\Param::addParam() by @deguif #2030 ### 🔄 Changed
    • 🗄 Triggered deprecation in Elastica\Result::getType() method by @deguif #2016
    • ⚡️ Updated php-cs-fixer to 3.3.2 by @deguif #2022
    • ⚡️ Updated composer-normalize to 2.15.0 by @deguif #2021
    • ⚡️ Updated elasticsearch test version to 7.15.2 by @deguif #2027
    • Extracted setting gap policy to \Elastica\Aggregation\Traits\GapPolicyTrait and introduced \Elastica\Aggregation\GapPolicyInterface with constants for options by @stchr #2023
    • Extracted setting field to Elastica\Processor\Traits\FieldTrait by @deguif #2024
    • Extracted setting target_field to Elastica\Processor\Traits\TargetFieldTrait by @deguif #2026
    • Simplified github action matrix for continuous integration workflow by @deguif #2025 ### 🗄 Deprecated
    • 🗄 Deprecated Elastica\Query\Common class, use Elastica\Query\MatchQuery instead by @deguif #2013
    • 🗄 Deprecated Elastica\QueryBuilder\DSL\Query::common_terms(), use match() instead by @deguif #2013
    • 🗄 Deprecated passing an int as 1st argument to Elastica\Search::setOptionsAndQuery(), pass an array with the key size instead by @deguif #2010
    • 🗄 Deprecated cutoff_frequency option of Elastica\Query\MatchQuery by @deguif #2014
    • 🗄 Deprecated cutoff_frequency option of Elastica\Query\MultiMatch by @deguif #2015
    • 🗄 Deprecated Elastica\Bulk::toString(), Elastica\Bulk\Action::toString() and Elastica\Request::toString() methods, use __toString() method or cast to string instead by @deguif #2033
    • 🗄 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
    • 🗄 Deprecated not passing a method when constructing Elastica\Aggregation\NormalizeAggregation by @deguif #2040 ### ✂ Removed
    • ✂ Removed remaining _type field usages by @deguif #2017
    • ✂ Removed Elastica\Bulk::$_type dead property by @deguif #2034
    • ✂ Removed Elasticsearch old version checks in tests by @deguif #2041 ### 🛠 Fixed
    • 🛠 Fixed type-hint for Elastica\Search::setOptionsAndQuery() by @deguif #2009
    • 🛠 Fixed terms query params resolution by @deguif #2032
  • v7.1.2 Changes

    Backward Compatibility Breaks

    • 🔄 Changed Elastica\Exception\JSONParseException inheritance, it now extends \JsonException instead of \RuntimeException #1949 ### ➕ Added
    • ➕ Added Elastica\Aggregation\NormalizeAggregation #1956
    • ➕ Added Elastica\Suggest\Phrase::addDirectGenerator to align with ES specification #1964
    • ➕ Added support for psr/log 2.0 and 3.0 #1971
    • ➕ Added new optional 'case_insensitive' option to Elastica\Query\Wildcard #1894
    • ➕ Added Elastica\Result::getSort() fetching the "sort" property of results #1979
    • ➕ Added exposure of Point-In-Time ID for search responses in Elastica\ResultSet::getPointInTimeId() #1991
    • ➕ Added Elastica\Index::openPointInTime() for opening a PiT on the index #1994
    • ➕ Added possibility to specify PointInTime on Elastica\Query::setPointInTime() #1992
    • ➕ Added Elastica\Client::closePointInTime() for closing a PiT #1995 ### 🔄 Changed
    • ⚡️ Updated php-cs-fixer to 3.2.1 #1996 #1959 #1955
    • ✅ Using default Elasticsearch images for testing instead of OSS https://github.com/ruflin/Elastica/pull/1954 ### 🛠 Fixed
    • 🛠 Fixed compatibility with guzzlehttp/psr7 version 2.x #2002
    • Fixed the assignment of version, seq_no and primary_term on getDocument #1973
  • v7.1.1 Changes

    Backward Compatibility Breaks

    • 🔄 Changed Elastica\Query\MatchQuery::setFieldParam() signature to allow passing bool, float or int #1941
    • 🔄 Changed Elastica\Query\MatchPhraseQuery::setFieldParam() signature to allow passing bool, float or int #1944 ### ➕ Added
    • 🐳 Excluded docker directory in .gitattributes #1938 ### 🔄 Changed
    • Included Content-Type HTTP header every time, whatever the content of the body is #1780
    • 🔄 Changed Elastica\Status::indexExists(), Elastica\Status::aliasExists() and Elastica\Status::getIndicesWithAlias() signatures #1929
    • 👉 Replaced call_user_func() and call_user_func_array() by direct calls #1923
    • Replaced legacy constant CURLINFO_HTTP_CODE by CURLINFO_RESPONSE_CODE #1931
    • ⚡️ Updated php-cs-fixer to 2.18.3 #1915
    • ⚡️ Updated composer-normalize to 2.13.3 #1927 ### 🗄 Deprecated
    • 🗄 Deprecated Elastica\Transport\HttpAdapter class #1940
    • 👀 Deprecated Elastica\Exception\JSONParseException exception, catch \JsonException instead #1949 ### 🛠 Fixed
    • 🛠 Fixed wrong ltrim usage in guzzle transport #1783
    • Fixed _seq_no and _primary_term wrong initialization #1920
    • 🛠 Fixed Elastica\Connection\StrategyInterface instance checks #1921
    • 🛠 Fixed various PHPDoc annotations #1922
    • 🛠 Fixed numeric index names are returned as int in Elastica\Status::getIndexNames() #1928
    • 🛠 Fixed using raw array in post_filter #1950
  • v7.1.0 Changes

    Backward Compatibility Breaks

    • ➕ Added a default value to Elastica\Aggregation\Range::setKeyed() and Elastica\Aggregation\PercentilesBucket::setKeyed() #1876
    • ✂ Removed type-hint to Elastica\Aggregation\Percentiles::setMissing() argument #1875
    • 👍 Allowed the Terms query to accept an array of bool, float, int and/or string #1872 ### ➕ Added
    • ➕ Added auth_type parameter in the client class config to specify the type of authentication (allowed values are basic, digest, gssnegotiate, ntlm) #1790
    • Added if_seq_no / if_primary_term to replace version for optimistic concurrency control #1803
    • ➕ Added Elastica\Aggregation\PercentilesBucket aggregation #1806
    • ➕ Added weighted_avg to aggregations DSL #1814
    • ➕ Added support for defining a connection pool with DSN. Example: pool(http://127.0.0.1 http://127.0.0.2/bar?timeout=4) #1808
    • ➕ Added Elastica\Aggregation\Composite aggregation #1804
    • ➕ Added symfony/deprecation-contracts package to handle deprecations #1823
    • ➕ Added list_syntax CS rule #1854
    • Added native_constant_invocation CS rule #1833
    • ➕ Added static_lambda CS rule #1870
    • ➕ Added Elastica\Aggregation\DateRange::setTimezone() #1847
    • ➕ Added endpoint options support to Elastica\Index::create() #1859
    • ➕ Added Elastica\Aggregation\DateHistogram::setKeyed() #1876
    • ➕ Added Elastica\Aggregation\GeoDistance::setKeyed() #1876
    • ➕ Added Elastica\Aggregation\Histogram::setKeyed() #1876
    • ➕ Added Elastica\Aggregation\IpRange::setKeyed() #1876
    • ➕ Added Elastica\Aggregation\GeotileGridAggregation #1880
    • ➕ Added Elastica\Aggregation\Avg::setMissing(), Elastica\Aggregation\Cardinality::setMissing(), Elastica\Aggregation\DateRange::setMissing(), Elastica\Aggregation\DateHistogram::setMissing(), Elastica\Aggregation\ExtendedStats::setMissing(), Elastica\Aggregation\Histogram::setMissing(), Elastica\Aggregation\Max::setMissing(), Elastica\Aggregation\Min::setMissing(), Elastica\Aggregation\Stats::setMissing(), Elastica\Aggregation\Sum::setMissing(), Elastica\Aggregation\Terms::setMissing() #1876
    • 👌 Supported guzzlehttp/guzzle 7.x #1816
    • 👌 Supported PHP 8.0 #1794
    • 👌 Supported BC break on elasticsearch/elasticsearch version 7.4.0 #1864 ### 🔄 Changed
    • 👍 Allowed string such as wait_for to be passed to AbstractUpdateAction::setRefresh #1791
    • 👍 Allowed float values for connection timeout and connection connect-timeout, providing ms precision for those. Previous precision was second. #1868
    • ⚡️ Changed the return type of AbstractUpdateAction::getRefresh to boolean|string #1791
    • Reviewed options handling in Elastica\Index::create() #1822
    • 🗄 Replaced deprecated exceptions request option by http_errors request option in Guzzle transport #1817
    • 💅 Run coding styles check on github action #1878
    • ✅ Run unit tests on github action #1882
    • ✅ Run functional tests on github action #1885
    • ⚡️ Updated php-cs-fixer to 2.16.4 #1830
    • ⚡️ Updated php-cs-fixer to 2.16.7 #1881
    • ⚡️ Updated php-cs-fixer to 2.17.3 #1895
    • ⚡️ Updated php-cs-fixer to 2.18.2 #1897
    • 🔧 Used GuzzleHttp\RequestOptions constants for configuring request options #1820
    • 👉 Used new alias endpoints classes #1839
    • 👉 Used new cache endpoints classes #1840
    • 👉 Used new ingest pipeline endpoints classes #1834
    • 👉 Used new mapping endpoints classes #1845
    • 👉 Used new nodes endpoints classes #1863
    • 👉 Used new settings endpoints classes #1852 ### 🗄 Deprecated
    • 🗄 Deprecated Elastica\Aggregation\Range::setKeyedResponse(), use setKeyed() instead #1848
    • 👀 Deprecated Elastica\Exception\ResponseException::getElasticsearchException(), use getResponse()::getFullError() instead #1829
    • 🗄 Deprecated Elastica\QueryBuilder\DSL\Aggregation::global_agg(), use global() instead #1826
    • 🗄 Deprecated Elastica\Util::getParamName() #1832
    • 🗄 Deprecated all Processor class names in favor of suffixed class names #1893
    • 🗄 Deprecated Match query class and introduced MatchQuery instead for PHP 8.0 compatibility reason #1799
    • ⚡️ Deprecated version/version_type options (deprecated in 6.7.0) and added if_seq_no / if_primary_term that replaced it
    • 🗄 Deprecated passing bool or null as 2nd argument to Elastica\Index::create() #1828 ### ✂ Removed
    • ✂ Removed HHVM proxy detection #1818 ### 🛠 Fixed
    • 🛠 Fixed issue 1789
    • 🛠 Fixed type-hint for Elastica\QueryBuilder\DSL\Aggregation::sampler() not consistent with the underlying constructor call #1815
    • 🛠 Fixed Elastica\Util::toSnakeCase() with first letter being lower cased #1831
    • 🛠 Fixed handling precision as string in Elastica\Aggregation\GeohashGrid::setPrecision() #1884
    • 🛠 Fixed calling Elastica\Aggregation\Composite::addAfter() with the null value 1877
    • Replaced _routing and _retry_on_conflict by routing and retry_on_conflict in AbstractUpdateAction #1807
  • v7.0.0 Changes

    June 10, 2020

    🚀 This is the first non beta release in the 7.0 cycle. Please check all the previous beta release changelogs for breaking changes.

    ➕ Added

    • ➕ Added Elastica\Aggregation\WeightedAvg aggregation #1770

    🔄 Changed

    • ➕ Added missing Response information to Bulk/ResponseSet #1776
  • v7.0.0-beta.4 Changes

    March 23, 2020

    Backward Compatibility Breaks

    • If you're NOT using composer to manage your libraries: the root directory of the library's source code moved from lib/Elastica/ to src/.
    • The Wildcard::setValue() changed its signature: use it to set the value of the wildcard query only.
    • The Wildcard Query's constructor now requires the name and value properties.
    • The Terms Query's constructor now requires the field and terms properties.

    ➕ Added

    • ➕ Added AbstractTermsAggregation::setIncludeAsExactMatch() #1766
    • ➕ Added AbstractTermsAggregation::setExcludeAsExactMatch() #1766
    • ➕ Added AbstractTermsAggregation::setIncludeWithPartitions() #1766
    • ➕ Added Elastica\Reindex->setPipeline(Elastica\Pipeline $pipeline): void. The link between the reindex and the pipeline is solved when run() is called, and thus the pipeline given doesn't need to be created before calling setPipeline() #1752
    • ➕ Added Elastica\Reindex->setRefresh(string $value): void. It accepts REFRESH_* constants from its class #1752 and #1758
    • ➕ Added Elastica\Reindex->setQuery(Elastica\Query\AbstractQuery $query): void #1752
    • Added constants PIPELINE, REFRESH_TRUE, REFRESH_FALSE, REFRESH_WAIT_FOR, SLICES and SLICES_AUTO to Elastica\Reindex #1752
    • ➕ Added Elastica\Pipeline->getId(): ?string #1752
    • ➕ Added Elastica\Aggregation\ExtendedStatsBucket aggregation #1756

    🔄 Changed

    • 🔄 Changed Terms::setTerms() signature: it now accepts a list of strings only #1765
    • 🔄 Changed Terms::setTermsLookup() signature: index, path and id are now required arguments #1765
    • 🔄 Changed Wildcard::setValue() and constructor's signature: added more specific Wildcard::setBoost() and Wildcard::setRewrite methods
    • ⚡️ Updated PHP coding standards to adhere to PSR-12 #1760
    • ⚡️ Updated to PHPUnit v8.5 #1759
    • 🔨 Refactored code structure: use src/ and tests/ folders #1755
    • 🛠 Require elastica-php library >= v7.1.1, fixes an issue on Ingestion/Put() type-hinting
    • 🛠 Require guzzle >= v6.3 as development library: fixes issues on PHP >= 7.2
    • 🗄 Require phpunit >= v7.5, fixes deprecations in with PHP 7.3
    • 👻 Scroll is now throwing an exception when calling current() on an invalid iteration: always call valid() before
      📚 accessing the current item, as documented in PHP's Iterator documentation #1749

    ✂ Removed

    • ✂ Removed unsupported flags from AbstractTermsAggregation::setInclude() #1766
    • ✂ Removed unsupported flags from AbstractTermsAggregation::setExclude() #1766
    • 🚚 Terms::setMinimumMatch() has been removed as not supported by ES 7.x
  • v7.0.0-beta.3 Changes

    January 16, 2020
    • Marked Elastica 5.x as unmaintained

    🛠 Bugfixes

    • 🛠 Fix Search::count() not counting all results #1746
    • Fixed handling of Search::OPTION_SEARCH_IGNORE_UNAVAILABLE inside Scroll object

    ➕ Added

    • ➕ Added DiversifiedSampler aggregation #1735
    • ➕ Added \Elastica\Query\DistanceFeature #1730
    • ➕ Added support for injecting a callable AWS credential provider to use static, cached, or custom-sourced credentials #1667

    👌 Improvements

    • 🚀 Scroll releases previous ResultSet from memory before calling ES for next data batch #1740