https://github.com/zingimmick/laravel-scout-opensearch
Laravel Scout custom engine for OpenSearch
https://github.com/zingimmick/laravel-scout-opensearch
laravel opensearch scout
Last synced: 7 months ago
JSON representation
Laravel Scout custom engine for OpenSearch
- Host: GitHub
- URL: https://github.com/zingimmick/laravel-scout-opensearch
- Owner: zingimmick
- License: mit
- Created: 2021-08-11T07:59:43.000Z (about 4 years ago)
- Default Branch: 3.x
- Last Pushed: 2024-04-26T11:37:17.000Z (over 1 year ago)
- Last Synced: 2024-04-26T12:38:36.888Z (over 1 year ago)
- Topics: laravel, opensearch, scout
- Language: PHP
- Homepage:
- Size: 138 KB
- Stars: 15
- Watchers: 1
- Forks: 5
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Laravel Scout OpenSearch
> **Requires [PHP 8.0+](https://php.net/releases/)**
Require Laravel Scout OpenSearch using [Composer](https://getcomposer.org):
```bash
composer require zing/laravel-scout-opensearch
```## Configuration
```php
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
```php
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
```php
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
```php
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](LICENSE).