Scout全文搜索

这里运用的是Laravel框架,工具是PhpStorm.

1、前往 https://www.algolia.com/ 注册账号,可以使用免费版,当然你也可以买一个,然后在账户的API Keys菜单获取Application ID和Admin API Key,后面会用到的

2、

1
2
3
composer require algolia/algoliasearch-client-php

composer require laravel/scout(如果担心版本过新,容易出问题的话,这两条不用执行,直接跳过这两条命令)
1
2
3
在composer.json的require加入以下2条
"laravel/scout": "^5.0",
"algolia/algoliasearch-client-php": "^1.2.7"

3、运行 composer install(若不行,删除composer.lock后再运行),Scout 安装完成后,使用 vendor:publish Artisan 命令来生成 Scout 配置文件。这个命令将生成 scout.php 配置文件到你的 config 目录:

1
php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider"

4、将scout.php中algolia的两个值ALGOLIA_APP_ID、ALGOLIA_SECRET复制到.env文件 ,并赋值相应的Application ID和Admin API Key(不要引号,14 天过期)

5、运行 php artisan vendor:publish --provider=“Laravel\Scout\ScoutServiceProvider”

--------------------------------上面按步骤操作,下面涉及到逻辑方法

最后,在你想要做搜索的模型中添加 Laravel\Scout\Searchable trait。这个 trait 会注册一个模型观察者来保持模型和搜索驱动的同步:

1
2
3
4
5
6
7
8
9
<?php
namespace App;
use Laravel\Scout\Searchable;
use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
use Searchable;
}

Scout 提供了 Artisan 命令 import 用来导入所有已存在的记录到搜索索引:

1
2
php artisan scout:import "App\Post"(空间\类)
如果ALGOLIA_APP_ID、ALGOLIA_SECRET过期,报错:超出操作限额

执行搜索:

1
$orders = App\Order::search('Star Trek')->get();

需建立方法HomeController下建立search方法,填写 “执行搜索” 还有添加入模板页面