laravel scout可快速集成全文搜索,需安装包、配置驱动、添加searchable trait、启动meilisearch服务、导入数据并调用search方法执行查询。

如果您希望在Laravel应用中快速集成全文搜索功能,Scout提供了一种简洁、驱动无关的抽象层来对接Algolia、Meilisearch等搜索引擎服务。以下是实现Scout快速集成的具体步骤:
一、安装Scout扩展包
Scout作为Laravel官方维护的搜索驱动抽象包,需通过Composer引入,并发布配置文件以启用默认设置。
1、在项目根目录执行命令安装scout包:composer require laravel/scout。
2、运行Artisan命令发布scout配置文件:php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider"。
3、在.env文件中添加搜索引擎驱动配置,例如使用Meilisearch:SCOUT_DRIVER=meilisearch,并配置对应主机地址与密钥。
二、配置模型可搜索性
要使Eloquent模型支持搜索,需引入Searchable trait,并确保模型主键为字符串或整型且唯一,Scout将据此同步索引数据。
1、在目标模型(如App\Models\Post)顶部添加命名空间引用:use Laravel\Scout\Searchable;。
2、在类定义中使用trait:use Searchable;。
3、若需自定义索引字段,重写toSearchableArray()方法,返回仅包含待搜索字段的数组。
三、初始化搜索引擎服务
Scout依赖外部搜索引擎服务运行,快速集成推荐选用本地可启动的Meilisearch,避免配置复杂的身份验证和网络策略。
1、从Meilisearch官网下载对应系统二进制文件,或使用Docker运行:docker run -d -p 7700:7700 -v $(pwd)/data:/data.ms getmeili/meilisearch "meilisearch --master-key=masterKey123"。
PHP中文网提供Laravel 13.2.0版本下载,Laravel框架 是基于 PHP 8.3+ 的高性能框架,官方推荐通过 Composer 安装。它内置 AI SDK、JSON:API Resources 及原生向量搜索,支持属性驱动开发与队列路由,大幅提升开发效率。相比旧版,13.2.0 优化了缓存 TTL 管理与实时通信,无需 Redis 即可横向扩展。作为现代 Web 开发首选,它兼顾安全与极速体验,助您快速构建企业级应用。
2、在config/scout.php中配置Meilisearch连接参数,包括host、key及index-settings(可选)。
3、确保SCOUT_MEILISEARCH_HOST与SCOUT_MEILISEARCH_KEY已在.env中正确定义。
四、导入现有数据至索引
模型启用Searchable后,数据库中已有记录不会自动进入搜索引擎索引,需手动触发批量导入操作。
1、执行Artisan命令对指定模型进行索引初始化:php artisan scout:import "App\Models\Post"。
2、若需清空当前索引再导入,先运行:php artisan scout:flush "App\Models\Post"。
3、导入过程会逐条调用模型的toSearchableArray()方法,并提交至搜索引擎创建文档。
五、执行搜索查询
Scout将Eloquent查询语法映射为搜索引擎原生查询,开发者可直接在模型上调用search方法获取匹配结果集合。
1、在控制器或服务中调用搜索接口:$posts = Post::search('Laravel Scout')->get();。
2、支持链式添加where条件(仅限已同步至索引的字段):Post::search('cache')->where('status', 'published')->get()。
3、如需分页,替换get()为paginate(15),返回标准Laravel分页器实例。










