All notable changes to Explorer
will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
- Add support for nested aggregations
- Support Laravel and Scout 11.
- Support for
missing
in sort order
- Support for PHP8.3
- The configurable logger may now be a channel name.
- Refactoring of rescoring and sorting.
- Non-bucket based aggregations throwing exception.
- Updating the index alias is now done through a (queueable) job.
- Nested aggregations in the results.
- Option to enable a PSR-3 compliant logger.
- Allow custom order by (as a syntax object).
- Support for Laravel Scouts's search callback.
- Only update aliases for the intended index.
- PHPStan.
- Regex syntax.
- Default settings for every index via config.
- Internals of the Scout builder and service provider.
where
andwhereIn
support.
- QueryProperties with source filter and track total hits as first properties.
- Support for Laravel Scout 10.
- Support for
scout:delete-all-indexes
command.
- Bugs with deleting (aliased) indices.
- (internal) service container bindings.
- Support for Laravel v10
- Add prefix lenght field on multimatch query.
- Support for PHP8.2.
- Range query error when starting at 0.
- Ensure that aliases are created before index is updated.
- Index configuration split in direct and aliased configurations.
- Bug returned class in Elastic client binding in the service provider.
- With new config builder all connection options should be available.
- Parameters for the wildcard query syntax.
- Set configuration for the Elasticsearch client using a builder.
- PHP 8.2 in the CI.
- Moved
user
andpass
fromexplorer.connection
toexplorer.connection.auth
username
andpassword
- Index configs are not being skipped in update command.
- SSL option for connections with ES8.
- Configuration to use Basic Authentication (#99)
- Syntax Distance (#100)
- Scout vs Explorer index prefixes (#101)
- Scout flush command (#102)
- Bug with running the update command for and index without an alias (#92)
- Support for PHP 8.1
- Laravel Scout's prefix is added to the index name if present
- Max and Nested aggregations
- Dropped support for PHP 7
- Dropped support for Laravel 7 and 8
- Removed deprecated
elastic:create
andelastic:delete
commands - DocumentAdapterInterface and IndexAdapterInterface have slightly changed
- Configuration to use Basic Authentication (#99)
- Fixed bug where index could not be created without settings (#81)
- The new match_phrase query (#73)
- Ability to optionally set more parameters for a few queries (#68)
- Index aliases, useful for zero downtime indexing
- Connection configuration now can include API ID and key (#74)
- The
elastic:create
andelastic:delete
are deprecated in favour ofscout:index
andscout:delete-index
- Use lazy instead of cursor when mapping lazy collections
- The scout:index and scout:delete commands are now implemented for Elasticsearch
- A DocumentAdapterInterface with an adapter that only deals with documents
- The Query String and Simple Query String syntax
- The ability to fake Elasticsearch responses, allowing integration tests with this package
- The IndexAdapterInterface now only focuses on indices
- If you rely on the old IndexAdapterInterface, use the DeprecatedElasticAdapterInterface instead of the IndexAdapterInterface to keep the functionality working as it previously was
- Support for term aggregations
- Wildcard syntax
- Pagination now works with the default Laravel Scout
paginate()
method
- DisjunctionMax, Exists and Invert Query Syntaxes
- Updated Laravel Scout support to include v9
- Indices are now configured through a IndexConfiguration class and repository
- Both Match and MultiMatch queries may now specify a 'fuzziness', the default stays 'auto'
- Using the
field()
on the search builder you may now define specifically which field(s) should be retrieved for the documents - New function score compound queries that can replace the default boolean compound query
- A static
debug
method to help you with the last executed query - Laravel Scout's
take()
method can be used to set the max amount of results - Text analysis (analyzers, tokenizers, filters, etc.) is now possible through index settings.
- Prepare (parts of) your data before letting Elasticsearch index it.
- Sorting now uses the default Scout
orderBy()
method - The MultiMatch now accepts a
fields
array with the fields to search in - The Engine now uses Elastic's bulk operations to speed up updates of models
- Running
scout:flush
now actually deletes the contents of an index
- Added the
newCompound()
function to customize the compound query
- Boosts may now completely be left out
- Console commands now use the configured connection
- Client used to boot with three connections instead of one
- BoolQueries can now also be nested
- Ability to query nested property types
- Boosts are now null by default
- The boost field in the Range query was not in the right place
- The builder used the words must, should and filter plural instead of singular
- Updated dev dependency Infection to 0.20
- Everything