baijunyao / laravel-scout-elasticsearch
Elasticsearch Driver for Laravel Scout
Package info
github.com/baijunyao/laravel-scout-elasticsearch
pkg:composer/baijunyao/laravel-scout-elasticsearch
v6.0.0
2026-10-29 12:26 UTC
Requires
- elasticsearch/elasticsearch: ^6.0 | ^7.0
- illuminate/database: ^7.0 | ^8.0 | ^9.0 | ^10.0 | ^11.0 | ^12.0 | ^13.0
- illuminate/support: ^7.0 | ^8.0 | ^9.0 | ^10.0 | ^11.0 | ^12.0 | ^13.0
- laravel/scout: ^7.1 | ^8.0 | ^9.0 | ^10.0 | ^11.0
Requires (Dev)
- orchestra/testbench: ^11.0
- phpunit/phpunit: ^11.5
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
介绍
为 Laravel Scout 开发的 Elasticsearch 驱动;
之所以造这个轮子是因为 laravel-scout-elastic 不支持中文分词且不支持多张表;
而 Elasticquent 这种不基于 scout 的又略麻烦;
文档
兼容性
- 支持 Laravel 7–13,Laravel 13 要求 PHP 8.3+。
- 支持 Scout 7.1–11;已适配 Scout 11 的条件结构和比较操作符。
- Elasticsearch PHP 客户端仍支持 6.x / 7.x;本次不包含 Elasticsearch 8.x / 9.x 升级。
- 支持
cursor()延迟读取模型,模型会在迭代时按搜索结果顺序一次性载入,并非逐行数据库游标。
索引沿用 scout.elasticsearch.prefix 配置。创建、删除索引时传入未加此前缀的名称:
php artisan scout:index articles php artisan scout:delete-index articles
直接调用引擎的 createIndex($name, $options) 时,$options 为 Elasticsearch 创建索引的请求体(如 settings、mappings);不支持 scout:index --key。
开发验证
测试环境使用 Laravel 13、Testbench 11 和 PHPUnit 11,要求 PHP 8.3+ 及 SQLite 扩展:
composer install
composer test
测试使用模拟的 Elasticsearch 客户端,不依赖 Elasticsearch 服务;真实服务及中文分词插件需在应用环境中另行验证。