laluciole / elasticsearch-driver
ElasticSearch Statamic driver
Package info
github.com/LaLucioleSAS/statamic-elasticsearch-driver
Type:statamic-addon
pkg:composer/laluciole/elasticsearch-driver
Requires
- php: ^8.2
- elasticsearch/elasticsearch: ^8.0
- laravel/framework: ^12.0
- statamic/cms: ^6.0
Requires (Dev)
- orchestra/testbench: ^10.8
README
ElasticSearch driver for Statamic
This addon add's an Elasticsearch driver to Statamic builtin search system.
About ElasticSearch
Features
- Compatibility with both cloud and self-hosted ElasticSearch engine.
- Ability to index collections, assets, taxonomies and users (like default search), but also assets content for specific file formats like PDF, XML, etc. Build with Elastic Attachment processor.
Compatibility
Statamic versions: [Statamic 6.0+]
ElasticSearch versions: From [ElasticSearch 8.19.0]
Installation and Setup
How to Install
You can install this addon via Composer:
composer require laluciole/elasticsearch-driver
How to Use
First, you need to declare the driver in config/statamic/search.php, to define the connection properties for your Elasticsearch server.
'elasticsearch' => [ 'hosts' => ['http://localhost:9200'], 'apikey' => env('ELASTICSEARCH_API_KEY', 'YOUR_API_KEY'), ]
Next, you need to configure new indexes using the addon. Indexes are configured in config/statamic/search.php and uses the standard Statamic index configuration.
Here's an entry in indexes for the pages collection:
'public' => [ 'driver' => 'ElasticSearch', 'searchables' => 'collection:pages', 'fields' => ['title', 'description', 'content'], ],
You can add more arguments, like :
'settings' => [ 'assetscharlimit' => 100000, ],
TODO : settings list
If you use Bard fields, please use the Laluciole\ElasticsearchDriver\elastic\SearchTransformers\BardTransformer::class transformer class.
/!\ This is a commercial addon
You can use it for free while in development, but requires a license to use on a live site. Learn more or buy a license on The Statamic Marketplace!
Contributions
If you have any ideas on how to improve this add-on, please create an issue on Github and we'll try to analyze all suggestions as soon as possible.