1、通过 Composer 包管理器来安装 Scout:
composer require laravel/scout
2、生成配置文件
php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider"
3、安装Algolia
composer require algolia/algoliasearch-client-php // 注意,如果按照laravel官方文档说的用 composer require algolia/algoliasearch-client-php:^2.2 安装,安装的版本可能会报 VERSION 不存在的错误
4、在config/app.php文件中的providers数组中加入服务提供者
Laravel\Scout\ScoutServiceProvider::class,
5、生成scout配置文件
php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider"
6、前往https://www.algolia.com/注册账号,在菜单API Keys获取Application ID和Admin API Key分别写入第5步的配置文件scout.php的algolia的id和secret。
7、创建一个Post模型
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Laravel\Scout\Searchable; class Post extends Model { use Searchable; /** * Get the index name for the model. * * @return string */ public function searchableAs() { return 'posts_index'; } /** * 获取模型的可搜索数据。 * * @return array */ public function toSearchableArray() { $array = $this->toArray(); // 自定义数组... return $array; } }
8、导入post表的数据到Algolia
php artisan scout:import "App\Models\Post"
9、搜索
$studens = App\Post::search('这里是搜索内容')->get(); dd($studens);
说明:我在本地测试报错 Impossible to connect, please check your Algolia Application Id. 后来把代码放到线上测试环境进行测试正常。