zingimmick / laravel-scout-opensearch by zingimmick

Laravel Scout custom engine for OpenSearch
146,073
26
1
Package Data
Maintainer Username: zingimmick
Maintainer Contact: zingimmick@outlook.com (zingimmick)
Package Create Date: 2021-08-11
Package Last Update: 2025-06-13
Home Page:
Language: PHP
License: MIT
Last Refreshed: 2025-07-08 15:00:04
Package Statistics
Total Downloads: 146,073
Monthly Downloads: 13,098
Daily Downloads: 649
Total Stars: 26
Total Watchers: 1
Total Forks: 8
Total Open Issues: 1

Laravel Scout OpenSearch

Requires PHP 8.0+

Require Laravel Scout OpenSearch using Composer:

composer require zing/laravel-scout-opensearch

Configuration

return [
    // ...
    'opensearch' => [
        'hosts' => [env('OPENSEARCH_HOST', 'localhost:9200')],
        'basicAuthentication' => [env('OPENSEARCH_USERNAME', 'admin'), env('OPENSEARCH_PASSWORD', 'admin')],
        'retries' => env('OPENSEARCH_RETRYS', 2),
    ],
];

Set app name and table name for model

class SearchableModel extends Model
{
    use Searchable;

    public function searchableAs(): string
    {
        return 'searchable_models_index';
    }

    /**
     * @return array{id: mixed}
     */
    public function toSearchableArray(): array
    {
        return [
            'id' => $this->getScoutKey(),
        ];
    }
}

Configuration for Amazon OpenSearch Service

return [
    // ...
    'opensearch' => [
        'hosts' => [env('OPENSEARCH_HOST', 'localhost:9200')],
        'basicAuthentication' => [env('OPENSEARCH_USERNAME', 'admin'), env('OPENSEARCH_PASSWORD', 'admin')],
        'retries' => env('OPENSEARCH_RETRYS', 2),
        'sigV4Region' => env('OPENSEARCH_REGION', 'us-east-1') ,
        'sigV4Service' => env('OPENSEARCH_SERVICE', 'es') ,
        'sigV4CredentialProvider' => [
            'key' => env('OPENSEARCH_IAM_KEY'),
            'secret' => env('OPENSEARCH_IAM_SECRET'),
        ],
    ],
];

Debug and logging

return [
    // ...
    'opensearch' => [
        'hosts' => [env('OPENSEARCH_HOST', 'localhost:9200')],
        'basicAuthentication' => [env('OPENSEARCH_USERNAME', 'admin'), env('OPENSEARCH_PASSWORD', 'admin')],
        'retries' => env('OPENSEARCH_RETRYS', 2),
        'logger' => (new \Monolog\Logger('opensearch'))->pushHandler(new \Monolog\Handler\RotatingFileHandler('opensearch.log')),
        'tracer' => (new \Monolog\Logger('opensearch'))->pushHandler(new \Monolog\Handler\RotatingFileHandler('opensearch.log')),
    ],
];

License

Laravel Scout OpenSearch is an open-sourced software licensed under the MIT license.