novius / laravel-scout-elasticsearch-driver
Laravel Scout 的 Elasticsearch 驱动程序
4.0.0
2024-06-25 14:26 UTC
Requires
- php: ^8.2
- elasticsearch/elasticsearch: ^7.17
- laravel/framework: ^10.0
- laravel/scout: ^10.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.14
- orchestra/testbench: ^8.0
- phpunit/phpunit: ^9.0
README
此包是对 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 许可下。