Laravel Scout - 实时更新数据至Algolia

版权声明:尊重原创喔,转载请注明 https://blog.csdn.net/lgyaxx/article/details/78811349

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

猜你喜欢

转载自blog.csdn.net/lgyaxx/article/details/78811349