novius/laravel-scout-elasticsearch-driver

Laravel Scout 的 Elasticsearch 驱动程序

4.0.0 2024-06-25 14:26 UTC

This package is auto-updated.

Last update: 2024-09-25 15:03:39 UTC


README

Travis Packagist Release Licence

此包是对 babenkoivan/scout-elasticsearch-driver 的适配,以便与 Elasticsearch >= 7.0.0 版本协同工作

此包版本是为了与 Elasticsearch >= 7.0.0 中引入的 Elasticsearch "移除映射类型" 保持兼容而创建的

新增特性

  • 默认情况下,根据 Elasticsearch 建议,模型的类型现在保存在 type 字段中

  • 模型搜索后,将在您的结果模型上激活一个属性 _score

示例

$results = MyModel::search('keywords')->get();
foreach ($results as $result) {
    // Score is now available in : $result->_score
}
  • 日志:您现在可以使用 Laravel 日志记录器记录 ElasticSearch 的请求

要启用日志记录,您需要将 SCOUT_ELASTIC_LOG_ENABLED 设置为 true 并指定要使用的日志通道。

示例

config/logging.php

<?php

return [

    ...
    
    'channels' => [

        ...

        'es' => [
            'driver' => 'daily',
            'path' => storage_path('logs/es.log'),
            'level' => 'debug',
            'days' => 5,
        ],
    ],
];
  • elastic:reindex - 一个新命令,用于在不中断服务的情况下构建和填充新的索引;

config/scout_elastic.php

<?php

return [
    'client' => [
        'hosts' => [
            env('SCOUT_ELASTIC_HOST', 'localhost:9200'),
        ],
    ],
    'document_refresh' => env('SCOUT_ELASTIC_DOCUMENT_REFRESH'),
    'searchable_models' => [],
    'log_enabled' => env('SCOUT_ELASTIC_LOG_ENABLED', false),
    'log_channels' => [],
];

从原始包中删除的特性

  • elastic:update-mapping 命令;
  • elastic:migrate 命令;
  • elastic:update 命令;
  • 模型的映射:由索引配置器的 getDefaultMapping() 替换;
  • 单索引器;

要求

  • PHP >= 7.4
  • Laravel 框架 >= 7.25
  • Elasticsearch >= 7.0.0

对于 Laravel > 6 且 < 7.25,您可以安装 2.x 版本。

安装

composer require novius/laravel-scout-elasticsearch-driver:dev-master

配置

要配置此包,您首先需要发布设置

php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider"
php artisan vendor:publish --provider="Novius\ScoutElastic\ScoutElasticServiceProvider"

然后,在 config/scout.php 文件中将驱动设置设置为 elastic,并在 config/scout_elastic.php 文件中配置驱动程序本身。可用选项包括

注意,如果您使用批量文档索引,则可能需要更改块大小,您可以在 config/scout.php 文件中这样做。

用法

请参阅 原始包文档

代码风格检查

使用 php-cs 运行

composer run-script lint

贡献

欢迎贡献!在 Github 上提交问题或创建 Pull Request。

许可

此包在 MIT 许可下。