Laravel 存储、检索、邮件与通知功能全解析
一、搜索查询与 Scout 功能
在 Laravel 中,你可以像使用常规 Eloquent 调用一样修改查询。例如:
// 获取 Review 中匹配 "Llew" 的所有记录,每页限制 20 条,读取页面查询参数,就像 Eloquent 分页一样
Review::search('Llew')->paginate(20);
// 获取 Review 中匹配 "Llew" 且 account_id 字段设置为 2 的所有记录
Review::search('Llew')->where('account_id', 2)->get();
这些搜索返回的是从数据库中重新实例化的 Eloquent 模型集合。Algolia 存储 ID 并返回匹配的 ID 列表,Scout 再从数据库中提取这些记录并以 Eloquent 对象的形式返回。虽然不能完全使用 SQL WHERE 命令的复杂性,但它提供了基本的比较检查框架。
队列与 Scout
应用在每次修改数据库记录时都会向 Algolia 发出 HTTP 请求,这会使应用变慢。因此,Scout 可以轻松地将所有操作推送到队列中。在 config/scout.php 中,将 queue 设置为 true ,这样更新将异步索引。此时,全文索引处于“最终一致性”状态,数据库记录会立即更新,搜索索引的更新将排队并在队列工作器允许的最快速度内更新。
超级会员免费看
订阅专栏 解锁全文
14

被折叠的 条评论
为什么被折叠?



