Skip to content

LaLucioleSAS/statamic-elasticsearch-driver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

[Statamic 6.0+]

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.