Releases: matchory/elasticsearch
Releases · matchory/elasticsearch
Version 3.0.0 (Beta 2)
Immutable
release. Only release title and notes can be modified.
Changelog
Added
- Connection health check: New
ping()method on Connection to check Elasticsearch connectivity - Retry logic: New
retry($attempts, $delay)method for automatic retry with exponential backoff on transient failures - Bulk batching: The
bulk()method now accepts an optional$batchSizeparameter to automatically chunk large operations - Query profiling: New
profile()method to enable Elasticsearch query profiling for debugging - Cache logging: Cache read/write failures are now logged instead of silently ignored
- Fuzzy search: New
fuzzy($field, $value, $fuzziness)method for typo-tolerant search - Match phrase: New
matchPhrase($field, $value, $slop)method for exact phrase matching - Match phrase prefix: New
matchPhrasePrefix($field, $value)method for autocomplete-style prefix searches - Min score filter: New
minScore($score)method to filter out low-relevance results - Search after pagination: New
searchAfter($sortValues)method for efficient deep pagination using cursor-based approach - Track total hits: New
trackTotalHits($track)method to control total hit counting for performance optimization - Completion suggester: New
suggest($name, $text, $field)method for autocomplete functionality with context and fuzzy support - Term suggester: New
suggestTerm($name, $text, $field)method for spelling correction suggestions - Bulk update by query: New
updateByQuery($script, $params)method to update all documents matching a query - Bulk delete by query: New
deleteByQuery()method to delete all documents matching a query - Fluent aggregation helpers:
termsAgg($name, $field, $size)- Terms bucket aggregationavgAgg($name, $field)- Average metric aggregationsumAgg($name, $field)- Sum metric aggregationminAgg($name, $field)- Minimum metric aggregationmaxAgg($name, $field)- Maximum metric aggregationcardinalityAgg($name, $field)- Cardinality (distinct count) aggregationvalueCountAgg($name, $field)- Value count aggregationstatsAgg($name, $field)- Stats (min, max, sum, count, avg) aggregationdateHistogramAgg($name, $field, $interval)- Date histogram bucket aggregationhistogramAgg($name, $field, $interval)- Numeric histogram bucket aggregationrangeAgg($name, $field, $ranges)- Range bucket aggregationfilterAgg($name, $filter)- Filter bucket aggregationsubAgg($parentName, $childName, $config)- Sub-aggregation support
- OR conditions: New
orWhere($field, $operator, $value)method for OR query logic using Elasticsearch'sshouldclause - Should clause: New
should($type, $parameters)method for direct access to bool query should clauses - Minimum should match: New
minimumShouldMatch($minimum)method to control how many should clauses must match - Field exclusion: New
except(...$fields)method to exclude specific fields from results (clearer alternative tounselect()) - Limit alias: New
limit($count)method as an alias fortake()matching Laravel Eloquent's API
Changed
- BREAKING: Renamed
Queryclass toBuilderfor consistency with Laravel Eloquent naming conventions - BREAKING: ScoutEngine now uses ConnectionManager for client creation, respecting all connection configuration
- Scout search now uses
simple_query_stringinstead ofquery_stringfor safer user input handling - Cache key generation now includes the application key for improved security
- Cache key generation uses
print_r()fallback instead of expensiveserialize()
Removed
- BREAKING: Removed deprecated
Requestclass - BREAKING: Removed deprecated static methods from Connection:
setConnectionResolver()configureLogging()create()connection()isLoaded()
- BREAKING: Removed static
$resolverand$clientsproperties from Connection - BREAKING: Removed support for deprecated
es.phpconfig file (useelasticsearch.php) - BREAKING: Removed deprecated
escontainer alias (useelasticsearch) - BREAKING: Removed deprecated
ignore()method from Index (useignores()) - Removed deprecated
$connectionparameter fromConnection::newQuery()
Fixed
- ScoutEngine now consistently uses
getTotalCount()for total count extraction inmap()andlazyMap()methods - Index class no longer exposes internal properties publicly
Deprecated
- The following Index properties are now private and should be accessed via methods:
$callback$connection$ignores$mappings$name$replicas$shards$aliases
from($offset)method is deprecated, useskip($offset)instead for Eloquent compatibilitysize($limit)method is deprecated, usetake($limit)orlimit($limit)instead for Eloquent compatibilityunselect(...$fields)method is deprecated, useexcept(...$fields)instead for better clarity
Full Changelog: 3.0.0-beta.1...3.0.0-beta.2
Version (3.0.0 Beta 1)
Version 3.0.0-beta.0
Changelog
- Fix: Modern Eloquent Attribute accessors and mutators would not work with Elasticsearch Model instances due to the way attributes were implemented. This has been fixed.
- Chore: Bumped dependencies
Full Changelog: 3.0.0-alpha.13...3.0.0-beta.0
Version 3.0.0 (Alpha 13)
Changelog
- Feature: Removed Lumen support. We don't use it, and supporting it has become a burden.
- Fix: Laravel introduced changes to their trait booting behaviour that broke the package.
Full Changelog: 3.0.0-alpha.12...3.0.0-alpha.13
Version 3.0.0 (Alpha 12)
Changelog
⚠️ Hotfix: Laravel 12.8 introduced a backwards-compatibility breaking change in theHasEventstrait that triggers aBadMethodExceptionin Elasticsearch models. This version pins the Laravel dependency to 12.7 until a fix is implemented.
Full Changelog: 3.0.0-alpha.11...3.0.0-alpha.12
Version 3.0.0 (Alpha 11)
Changelog
- Chore: Added support for Laravel 12, removed support for Laravel 9
- Chore: Improved tooling
Version 3.0.0 (Alpha 10) Pre-release
Change log
- Fix: Fixed deprecation warnings in PHP 8.4
Version 3.0.0 (Alpha 9)
Changelog
- Fix: Logging channel configuration would not be applied due to a dependency resolution issue
Full Changelog: 3.0.0-alpha.8...3.0.0-alpha.9
Version 3.0.0 (Alpha 8)
Changelog
- Fix: The index option would not be removed from the client config before building
Version 3.0.0 (Alpha 7)
Change log
- Fix: Calls to methods that don't exist on either model or query would lead to recursive call forwarding
- Fix: Improved deprecations to point to proper origin
- Chore: Removed deprecated code and updated tests
- Chore: Introduced more static typing