mobilexco / laravel-scout-elastic
Laravel Scout的Elasticsearch驱动(具有AWS IAM功能)
Requires
- php: >=5.6.4
- elasticsearch/elasticsearch: ^5.0
- jsq/amazon-es-php: ^0.2
- laravel/scout: ^3.0|^4.0
Requires (Dev)
- fzaninotto/faker: ~1.4
- mockery/mockery: 0.9.*
- phpunit/phpunit: ~5.0
Suggests
- elasticsearch/elasticsearch: Required to use the Elasticsearch engine (^5.0).
This package is not auto-updated.
Last update: 2024-09-18 21:50:36 UTC
README
此软件包是Laravel Scout的Elasticsearch驱动程序,它适用于AWS的Elasticsearch,并且不需要您将凭证放入.env文件中。
内容
安装
您可以通过composer安装此软件包
composer require tamayo/laravel-scout-elastic
您必须在app.php配置中添加Scout服务提供者和软件包服务提供者
// config/app.php 'providers' => [ ... Laravel\Scout\ScoutServiceProvider::class, ... ScoutEngines\Elasticsearch\ElasticsearchProvider::class, ],
配置
此软件包假设您遵循良好的AWS安全实践,并且不在Laravel .env文件中放置密码,而是遵循AWS SDK for PHP版本3的凭证中概述的实践。要启用此功能,请将以下变量设置在您的.env文件中。
ELASTICSEARCH_PROVIDER=aws
对于本地开发,例如在vagrant内部,您可以通过省略此变量或按如下设置来使用正常的Elasticsearch客户端。
ELASTICSEARCH_PROVIDER=elastic
AWS客户端需要区域。如果您已经在.env文件中设置了这个区域,您可以按如下方式添加。
AWS_REGION=us-west-2
使用Scout进行测试
如果您的CI环境无法访问一个工作的Elasticsearch实例,任何索引的模型都会导致它出错。为了解决这个问题,请在您的phpunit.xml中添加以下内容。那里的单引号包围双引号是难点。
<env name="SCOUT_DRIVER" value='"null"' />
Laravel配置
在您发布Laravel Scout软件包配置后
php artisan vendor:publish --provider="ScoutEngines\Elasticsearch\ElasticsearchProvider"
您需要更新主scout配置
// config/scout.php // Set your driver to elasticsearch 'driver' => env('SCOUT_DRIVER', 'elasticsearch'), ... 'elasticsearch' => [ 'index' => [ // if using more than one index, you likely want to change this to each of // your indexes. quite possibly using searchableAs on your models. env('ELASTICSEARCH_INDEX', 'scout') ], 'hosts' => [ env('ELASTICSEARCH_HOST', 'http://localhost'), ], 'perModelIndex' => true, ], ...
以及此软件包的配置
// config/laravel-scout-elastic // set this if you don't want to include it in your .env 'provider' => env('ELASTICSEARCH_PROVIDER', 'elasticsearch'), ... 'region' => env('AWS_REGION', 'us-west-2'), ...
并启用artisan作业
// App/Console/Kernel.php protected $commands = [ ... \App\Console\Commands\CreateIndex::class ... ],
Elasticsearch配置
如果Scout无法连接到您的Elasticsearch服务器或索引不存在,它将愉快地抛出一个错误。
创建索引可能有点神秘,所以如果索引不存在,您可以在部署堆栈中包含以下artisan命令来检查索引是否存在,如果不存在,则会创建它。
php artisan scout:create-index
使用
现在您可以使用Laravel Scout,如官方文档中所述
致谢
许可证
MIT许可证(MIT)。