Laravel Scout - 实时更新数据至Algolia

本文介绍如何在Laravel应用中使用Scout组件实时更新数据到搜索引擎Algolia。首先,根据Laravel版本安装和配置Scout组件,然后设置 Algolia 的应用程序ID、搜索API密钥和管理员API密钥。为了保护敏感信息,不建议在.env文件中存储。通过在模型的saved事件上注册回调,实现数据更新时自动更新Algolia索引。首次使用时,需要执行批量导入命令以初始化索引。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在之前的一篇文章(Algolia Search - 使用Javascript实现前端实时搜索 )里,我们一起学习了怎么使用Algolia,那么今天我们一起来看一下,如何在Laravel中后台实时更新数据索引至Algolia数据库。

首先我们需要安装Laravel Scout组件:

$ composer require laravel/scout
$ composer require algolia/algoliasearch-client-php

如果你的Laravel版本低于5.5,那么你需要手动将service provider的类名添加进config/app.phpproviders数组中:

Laravel\Scout\ScoutServiceProvider::class,

如果你的版本是5.5+,那么该步骤可以跳过。

接下来我们需要运行以下命令:

$ php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider"

该命令会将scout.php添加进config文件夹。


接下来,我们需要将我们的Algolia信息添加到.env文件中。请参考本文顶部链接的文章来找到你的

Application ID
Search-only API key
Admin API key

这里不推荐直接将信息添加至scout.php,因为这些信息不应该被版本控制。
那么在.env中,我们添加如下字段:

ALGOLIA_APP_ID=YourApplicationID
ALGOLIA_SECRET=YourAdminAPIKey
ALGOLIA_SEARCH=YourSearchOnlyAPIKey

请将以上字段=后的文字替换为你自己的Algolia信息。


现在我们需要做的就是在我们每次更新数据时,数据会实时更新到Algolia
假设我们已经创建好了一个model名为Programmer,那么我们仅仅需要在这个model里添加一个trait

namespace App;

use Illuminate\Database\Eloquent\Model;
use Laravel\Scout\Searchable;

class Programmer extends Model
{
    use Searchable;
}

这样就完成了!但是如果是首次索引数据,那么我们需要先批量导入Alogolia一次:

$ php artisan scout:import 'App\Programmer'

现在我们登录Algolia后台,我们就能看到我们的数据了!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值