Laravel Scout - 實時更新數據至Algolia

在之前的一篇文章(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後臺,我們就能看到我們的數據了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章