Skip to content

zingimmick/laravel-scout-opensearch

Repository files navigation

Laravel Scout OpenSearch

Build Status Code Coverage Latest Stable Version Total Downloads Latest Unstable Version License

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.

About

Laravel Scout custom engine for OpenSearch

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages