Skip to content

Releases: ruflin/Elastica

Release 7.0.0-beta.4

23 Mar 15:45
0d45eda
Compare
Choose a tag to compare
Release 7.0.0-beta.4 Pre-release
Pre-release

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

Release 7.0.0-beta.3

16 Jan 12:37
Compare
Choose a tag to compare
Release 7.0.0-beta.3 Pre-release
Pre-release
  • 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

Release 7.0.0-beta2

10 Dec 06:31
bf1738e
Compare
Choose a tag to compare

Backward Compatibility Breaks

  • The class \Elastica\QueryBuilder\Version\Version240 has been moved to \Elastica\QueryBuilder\Version\Version700 #1693
  • Dropped support for PHP 7.1 #1703

Bugfixes

  • Renamed \Elastica\Suggest\Term deprecated option prefix_len to prefix_length #1707
  • The \Elastica\Query\GeoPolygon::count() method now returns the count of points passed to the filter #1696
  • Fix issue in \Elastica\Client::request() which causes request data to not be sent to the logger #1682

Added

  • Added geo_bounding_box, geo_polygon, match_phrase, match_phrase_prefix, match_none to \Elastica\QueryBuilder\Version\Version700 #1702
  • Added \Elastica\ResultSet::getTotalHitsRelation() to get relation for total hits #1694
  • Added Sampler aggregation #1688

Improvements

  • Launched tests with PHP 7.4 #1704
  • Launched local tests with PHP 7.2 by default #1725
  • Added nullable_type_declaration_for_default_null_value, no_alias_functions CS rules #1706
  • Configured visibility_required CS rule for constants #1723
  • Added Collapse DSL to QueryBuilder #1724

Release 7.0.0-beta1

31 Oct 09:25
ec541e1
Compare
Choose a tag to compare
Release 7.0.0-beta1 Pre-release
Pre-release

This is our first release in the 7.x cycle. It is compatible with Elasticsearch 7.x. Please review the breaking changes carefully. Most of them are related to the type removal in Elasticsearch.

Backward Compatibility Breaks

  • The \Elastica\Query::$_suggest property has been renamed to $hasSuggest and is now private, it should not be used from extending classes #1679
  • \Elastica\Document expects a string as ID, not an int #1672.
  • Removed \Elastica\Query\GeohashCell query, use \Elastica\Query\GeoBoundingBox instead #1672.
  • Deprecated usage of \Elastica\Type class, \Elastica\Index class must be used instead #1666
  • Removed \Elastica\Type class, \Elastica\Index class must be used instead #1666
  • Forced index names to string in \Elastica\Index::__construct() #1666
  • Removed Type query \Elastica\Query\Type #1666
  • Removed Elastica\Type class, Elastica\Index class must be used instead #1666
  • Removed type handling from Elastica\Search class #1666
  • Removed type handling from Elastica\Bulk and Elastica\Bulk\Action classes #1666
  • Forced index names to string in Elastica\Index::__construct() #1666
  • Removed Type query Elastica\Query\Type #1666
  • Dropped support for PHP 7.0
  • \Elastica\AbstractUpdateAction::getOptions( $fields ) no longer supports the $underscore parameter, option names must match what elasticsearch expects.
  • Removed no longer supported \Elastica\Query\QueryString::setAutoGeneratePhraseQueries( $bool ) #1622
  • Replaced params._agg with state context variable in scripted metric aggregations
  • Camel Case and underscore parameters deprecated in 6.x have been removed
  • The parameter fields deprecated in 6.x has been removed from Bulk requestedit and Update request.
  • The _parent field has been removed in favour of the join field.
  • hits.total is now an object in the search response hits.total
  • Elastica\Reindex does not return an Index anymore but a Response.
  • Elastica\Reindex->run() does not refresh the new Index after completion anymore. Use $reindex->setParam(Reindex::REFRESH, 'wait_for') instead.
  • Elastica\Search->search() and Elastica\Search->count() use request method POST by default. Same for Elastica\Index, Elastica\Type\AbstractType, Elastica\Type.
  • Elastica\Client $_config field is now a ClientConfiguration instead of an array
  • Removed \Elastica\Client::_log, \Elastica\Log and the log configuration option. Use the Psr\Log\LoggerInterface $logger client argument to customize logging.
  • Changed all factory methods to make use of late static bindings by using static instead of self keyword. This is to increase extendability for classes with factory methods.

Bugfixes

  • Always set the Guzzle base_uri to support connecting to multiple ES hosts. #1618
  • Properly handle underscore prefixes in options and bulk request metadata (cf upstream. #1621
  • Preserve zeros while doing float serialization to JSON. #1635
  • Add settings level on json to create an Index in all tests (it worked till 6.x but it shouldn't work)

Added

  • support for elasticsearch-php ^7.0
  • Added ParentAggregation #1616
  • Elastica\Reindex missing options (script, remote, wait_for_completion, scroll...)
  • Added AdjacencyMatrix aggregation #1642
  • Added request method parameter to Elastica\SearchableInterface->search() and Elastica\SearchableInterface->count(). Same for Elastica\Search#1441
  • Added support for Field Collapsing (Issue: #1392; PR: #1653)
  • Support string DSN in \Elastica\Client constructor for config argument #1640
  • Move Client configuration in a dedicated class
  • Added callable type hinting to $callback in Client constructor. #1659
  • Added setTrackTotalHits method to Elastica\Query#1663
  • Allow metadata to be set on Aggregations (via AbstractAggregation::setMeta(array)). #1677

Improvements

  • Added native_function_invocation CS rule #1606
  • Elasticsearch test version changed from 6.5.2 to 6.6.1 #1620
  • Clear scroll context also when empty page was received #1660

Release 5.3.6

29 Aug 06:58
Compare
Choose a tag to compare

Bugfixes

  • Corrected Histogram aggregations to allow for string interval #1655

Improvements

  • Update elasticsearch-php dependency to 5.4 #1648
  • Add testing on PHP 7.3 on Travis #1647

Release 6.1.1

29 Jan 09:38
333dff6
Compare
Choose a tag to compare

Added

  • Added BucketSelector aggregation #1554
  • Added DerivativeAggregation #1553
  • The preferred type name is _doc, so that index APIs have the same path as they will have in 7.0
  • Introduced new version of PHP-CS-Fixer and new Lint travis step. #1555

Improvements

  • Reduced memory footprint of response by not keeping the raw JSON data when JSON after JSON has been parsed. #1588

Release 5.3.5

28 Jan 13:38
e90badc
Compare
Choose a tag to compare

Added

  • [Backported] Added a transport class for mocking a HTTP 403 error codes, useful for testing response failures in inheriting clients #1592

Release 5.3.4

16 Jan 13:44
6d7c20e
Compare
Choose a tag to compare

Improvements

  • [Backported] Reduced memory footprint of response by not keeping the raw JSON data after JSON has been parsed. #1588
  • Fix PHPDoc block for ResultSet::current() #1591
  • Fix PHPDoc block for Index:analyze #1586

Release 3.2.4

05 Mar 08:05
Compare
Choose a tag to compare
  • 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
    2018-12-19
  • Added codecov configuration

Release 6.1.0

07 Dec 09:37
620552f
Compare
Choose a tag to compare

Backward Compatibility Breaks

  • 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
    • \Elastica\ResultSet::next returns void instead of \Elastica\Result|false
    • \Elastica\Bulk\ResponseSet::current returns \Elastica\Bulk\Response instead of \Elastica\Bulk\Response|false
    • \Elastica\Multi\ResultSet::current returns \Elastica\ResultSet instead of \Elastica\ResultSet|false

Added

  • Added a transport class for mocking a HTTP 403 error codes, useful for testing response failures in inheriting clients
  • Field param for Elastica\Query\FunctionScore::addRandomScoreFunction #1529
  • Index Recovery : the indices recovery API provides insight into on-going index shard recoveries. It was never been implemented into Elastica. #1537
  • add parent_id (reference #1518) in QueryBuilder. #1533
  • implemented string_distance option in Term Suggestion #1543

Improvements

  • Using Elastica\Query\FunctionScore::addRandomScoreFunction without $field parameter is deprecated since ES 6.0 and will fail since ES 7.0 #1522

  • 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, so updated tests in order not to fail. #1531

  • Aggregation\Percentiles have been updated since Elasticsearch 2.3. In this version compression, HDR histogram changed their implementations. The missing field has never been implemented. #1532

    Before

      "compression" : 200,
      "method" : "hdr",
      "number_of_significant_value_digits" : 3

    Now

      "tdigest": {
        "compression" : 200
      },
      "hdr": {
        "number_of_significant_value_digits" : 3
      }
  • Never implemented the method Missing on Aggregation\Percentiles #1532