mobilexco/laravel-scout-elastic

该软件包最新版本(4.0.0)没有提供许可证信息。

Laravel Scout的Elasticsearch驱动(具有AWS IAM功能)

4.0.0 2018-07-01 17:46 UTC

README

Software License

此软件包是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)。