Algolia
Description
Algolia adds the Enso integration layer for Algolia-backed search.
The package stores the runtime toggle for the integration, exposes the settings form used from the backoffice, and ships an artisan command that wraps scout:import and then updates index settings such as searchable attributes and faceting.
It is designed for Enso models that are already indexed through Laravel Scout Extended and need their Algolia configuration aligned with the application's filterable and searchable fields.
Installation
Install the package:
composer require laravel-enso/algolia
Run the package migrations:
php artisan migrate
Make sure the host application is already configured for Algolia through Laravel Scout / Scout Extended. This package does not replace the base Scout configuration.
Features
- Persists a single settings record used to enable or disable the Algolia integration from the Enso UI.
- Registers the settings routes and menu structure under
Integrations -> Algolia -> Settings. - Provides the
enso:algolia:importcommand for bulk imports. - Updates
searchableAttributesandattributesForFacetingafter each import based on the model's current static configuration.
Usage
Enable the integration from the Algolia settings screen or by updating the algolia_settings record.
Models imported with the package command are expected to expose the static configuration methods used when updating the index:
public static function filterableAttributes(): array
{
return ['brand', 'categoryId'];
}
public static function searchableAttributes(): array
{
return ['name', 'sku'];
}
Import a model into Algolia and immediately refresh the related index settings:
php artisan enso:algolia:import "App\\Models\\Product"
API
HTTP routes
GET api/integrations/algolia/settingsPATCH api/integrations/algolia/settings/{settings}
Route names:
integrations.algolia.settings.indexintegrations.algolia.settings.update
Artisan commands
enso:algolia:import {model} {--chunk=}
Behavior:
- delegates the bulk import to
scout:import - listens for
ModelsImported - updates Algolia faceting and searchable settings after import completion
Depends On
Required Enso packages:
Required external packages:
Companion frontend package:
Contributions
are welcome. Pull requests are great, but issues are good too.
Thank you to all the people who already contributed to Enso!