将心比心,方得人心~

Scout 全文搜索

周洲 2021-05-28 18:29:11

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. 后来把代码放到线上测试环境进行测试正常。

 






打赏

『微信打赏』

Tag标签laravel  全文搜索 

我是有底线的