Releases: ruflin/Elastica
Release 7.0.0-beta.4
Backward Compatibility Breaks
- If you're NOT using composer to manage your libraries: the root directory of the library's source code moved from
lib/Elastica/
tosrc/
. - The
Wildcard::setValue()
changed its signature: use it to set the value of the wildcard query only. - The
Wildcard
Query's constructor now requires thename
andvalue
properties. - The
Terms
Query's constructor now requires thefield
andterms
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 whenrun()
is called, and thus the pipeline given doesn't need to be created before callingsetPipeline()
#1752 - Added
Elastica\Reindex->setRefresh(string $value): void
. It acceptsREFRESH_*
constants from its class #1752 and #1758 - Added
Elastica\Reindex->setQuery(Elastica\Query\AbstractQuery $query): void
#1752 - Added constants
PIPELINE
,REFRESH_TRUE
,REFRESH_FALSE
,REFRESH_WAIT_FOR
,SLICES
andSLICES_AUTO
toElastica\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
andid
are now required arguments #1765 - Changed
Wildcard::setValue()
and constructor's signature: added more specificWildcard::setBoost()
andWildcard::setRewrite
methods - Updated PHP coding standards to adhere to PSR-12 #1760
- Updated to PHPUnit v8.5 #1759
- Refactored code structure: use
src/
andtests/
folders #1755 - Require elastica-php library >= v7.1.1, fixes an issue on Ingestion/Put() type-hinting
- Require guzzle >= v6.3 as development library: fixes issues on PHP >= 7.2
- Require phpunit >= v7.5, fixes deprecations in with PHP 7.3
- Scroll is now throwing an exception when calling
current()
on an invalid iteration: always callvalid()
before
accessing the current item, as documented in PHP's Iterator documentation #1749
Removed
Release 7.0.0-beta.3
- 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
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 optionprefix_len
toprefix_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
Release 7.0.0-beta1
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 fromElastica\Search
class #1666 - Removed
type
handling fromElastica\Bulk
andElastica\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()
andElastica\Search->count()
use request methodPOST
by default. Same forElastica\Index
,Elastica\Type\AbstractType
,Elastica\Type
.- Elastica\Client
$_config
field is now aClientConfiguration
instead of an array - Removed
\Elastica\Client::_log
,\Elastica\Log
and thelog
configuration option. Use thePsr\Log\LoggerInterface $logger
client argument to customize logging. - Changed all factory methods to make use of late static bindings by using
static
instead ofself
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()
andElastica\SearchableInterface->count()
. Same forElastica\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
inClient
constructor. #1659 - Added
setTrackTotalHits
method toElastica\Query
#1663 - Allow metadata to be set on Aggregations (via
AbstractAggregation::setMeta(array)
). #1677
Improvements
Release 5.3.6
Release 6.1.1
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
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
Release 3.2.4
- 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
Backward Compatibility Breaks
- Made result sets adhere to
\Iterator
interface definition that they implement. Specifically, you need to callvalid()
on the result set before callingcurrent()
. When usingforeach
this is done by PHP automatically. Whenvalid
returns false, the return value ofcurrent
is undefined instead of false. #1506\Elastica\ResultSet::next
returnsvoid
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 versioncompression, HDR histogram
changed their implementations. Themissing
field has never been implemented. #1532Before
"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