PHP code example of zing / laravel-scout-opensearch

1. Go to this page and download the library: Download zing/laravel-scout-opensearch library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

zing / laravel-scout-opensearch example snippets


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

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(),
        ];
    }
}

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'),
        ],
    ],
];

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')),
    ],
];