elasticsearch
安装包
命令行composer安装
composer require laravel/scout
在config中添加
Laravel\Scout\ScoutServiceProvider::class,
创建命令,自定义命令行
php artisan make:command ESInit 命令行创建命令行文件
挂载
App\Console中的Kernel
protected $commands = [
\ App\Console\Commands\ESInit::class
];
在模型中需要
use Laravel\Scout\Searchable;
//表=>posts
class Post extends Model
{
use Searchable;
//定义索引里面的type值
public function searchableAs()
{
return 'post';
}
//定义有哪些字段需要搜索
public function toSearchableArray()
{
return [
'title'=>$this->title,
'content'=> $this->content,
];
}
命令行中导入数据
php artisan scout:import "App\Post"
hasmany
return $this->hasMany(\App\Post::class,'user_id','id');
user_id id
取数量 stars fans posts 都是user的关联表
$user = User::withCount(['stars','fans','posts'])->find($user->id);
取出前十条文章
$posts = $user->posts()->orderBy('created_at','desc')
->take(10)->get();
pluck
pluck
方法是取得结果集第一列特定字段,它返回是字符串;