laravel scout 全文搜索篇

(http://laravelacademy.org/post/6277.html "[ Laravel 5.3 文档 ] 官方包)

废话不多说,搭配官方文档配合来看,进入正题;

安装

composer require laravel/scout

小伙伴们有谁运行这条命令就报错的的就举手,往这看->
composer require laravel/scout 后报错
出师不利啊 :);
点击图片跳转到composer error 页面
报的错误就是上图所述错误

解决错误

/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
/sbin/mkswap /var/swap.1
/sbin/swapon /var/swap.1

然后你就发现下载成功了 :)

引入ScoutServiceProvider类

添加ScoutServiceProvider到配置文件config/app.php的providers数组:

生成scout配置文件

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

选择模型类

<?php
namespace App\Models;

use Laravel\Scout\Searchable;

class Article extends Base
{
    use Searchable;
}

修改配置项

尽管不强制使用Scout,不过在使用这个库之前强烈建议考虑配置一个队列驱动。运行一个队列进程将允许Scout把所有同步模型信息到搜索索引的操作推送到队列中,从而为应用的web界面提供更快的响应时间。

配置好队列驱动后,在配置文件config/scout.php中设置queue选项的值为true:

composer 安装 Algolia PHP SDK

composer require algolia/algoliasearch-client-php
<?php
namespace App\Models;

use Laravel\Scout\Searchable;

class Article extends Base
{
    use Searchable;
    /**
     * 获取模型的索引名称.
     *
     * @return string
     */
    public function searchableAs()
    {
        return 'article_search';
    }

    /**
     * 获取模型的索引数据数组
     *
     * @return array
     */
    public function toSearchableArray()
    {
        $array = $this->toArray();
//        $array = ['title','markdown','html','description']; 自定义字段
        return $array;
    }
}

索引

php artisan scout:import "App\Models\Article"

配置所以这里可能会报错 :)
添加索引报错
点击图片进入注册algolia官网账号
注册成功跳转页面
点击那把小钥匙;
algolia图注释

填写配置文件config/scout.php

'algolia' => [
        'id' => env('ALGOLIA_APP_ID', '上图的 Application ID'),
        'secret' => env('ALGOLIA_SECRET', '上图的 Admin API Key'),
    ], //不要填错了哦!!

试试看

use App\Models\Article;

Route::get('search', function () {
    // 为查看方便都转成数组
    dump(Article::search('php')->get()->toArray());
});

打印信息
打印信息
哈哈成功了,打赏自己一朵小红花

史大坨博客
请先登录后发表评论
  • 最新评论
  • 总共1条评论
史大坨博客

BLMYX01:过来了,谢谢!其实我在Article::search()这里出了点问题,感谢提供思路,帮了大忙。

2018-07-02 01:39:35 回复