OpenSearch driver for Laravel Scout.
Install the package with Composer:
composer require directorytree/opensearch-scout-driverPublish the Scout configuration file if your application has not already done so:
php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider"Set Scout to use OpenSearch:
'driver' => env('SCOUT_DRIVER', 'opensearch'),Publish the OpenSearch client configuration:
php artisan vendor:publish --provider="DirectoryTree\OpenSearchClient\OpenSearchClientServiceProvider"Publish the OpenSearch Scout configuration:
php artisan vendor:publish --provider="DirectoryTree\OpenSearchScoutDriver\OpenSearchScoutServiceProvider"Configure the OpenSearch client connection in config/opensearch.client.php:
'default' => env('OPENSEARCH_CONNECTION', 'default'),
'connections' => [
'default' => [
'hosts' => [
env('OPENSEARCH_HOST', 'localhost:9200'),
],
],
],The Scout driver configuration is published to config/opensearch.scout.php:
'refresh_documents' => env('OPENSEARCH_SCOUT_REFRESH_DOCUMENTS', false),Use Scout as usual:
use App\Models\Post;
$posts = Post::search('laravel')->get();The driver converts Scout builders into OpenSearch search requests and uses the configured OpenSearch client connection to index, delete, flush, and search models.