推荐用 Laravel Scout 配 Algolia 实现全文搜索:安装 Scout 后配置 Algolia 驱动,模型添加 Searchable trait 并定义索引字段,支持自动同步、模糊匹配与分页查询。
在 Laravel 中实现全文搜索,推荐用官方扩展包 Scout,它把搜索逻辑抽象成统一接口,支持多种驱动,其中 Algolia 是最常用也最高效的第三方服务之一。
先通过 Composer 安装 Scout:
composer require laravel/scout发布配置文件并运行迁移:
php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider"在 .env 中设置默认驱动(比如用 Algolia):
SCOUT_DRIVER=algolia给要搜索的模型(如 Post)添加 Searchable trait,并定义可索引字段:
use Laravel\Scout\Searchable;
class Post extends Model
{
use Searchable;
protected $fillable = ['title', 'content', 'status'];
// 可选:控制哪些字段进索引
public function toSearchableArray()
{
return $this->only(['id', 'title', 'content']);
}
}
数据变更时 Scout 会自动同步;手动导入已有数据用:
php artisan scout:import "App\Models\Post"直接在模型上调用 search() 方法即可:
Algolia 响应快、功能强,但注意几点:
基本上就这些。Scout + Algolia 组合开箱即用,适合快速上线搜索功能,不复杂但容易忽略配置细节。