在之前的一篇文章(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.php的providers数组中:
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后台,我们就能看到我们的数据了!

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

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



