参照:https://blog.csdn.net/z_ruitao/article/details/105043521
composer require laravel/scout
# 在config/app.php 的 providers 数组中添加
Laravel\Scout\ScoutServiceProvider::class
# 执行命令发布配置文件
php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider
注:如果按照 scout 失败,根据错误信息判断是因为版本过高不兼容,可通过安装低版本来解决
composer require tamayo/laravel-scout-elastic
# 在 config/app.php 的 providers 数组中添加
ScoutEngines\Elasticsearch\ElasticsearchProvider::class
'driver' => env('SCOUT_DRIVER', 'elasticsearch'),
//配置elasticsearch引擎
'elasticsearch' => [
'index' => env('ELASTICSEARCH_INDEX', 'es_index'),//es_index就是索引的名字,根据实际情况来取名
'hosts' => [
env('ELASTICSEARCH_HOST', 'http://127.0.0.1:9200'),
],
]
在 model 类中引用 Searchable
use Laravel\Scout\Searchable; # 命名空间
use Searchable;
重写 searchableAs () 方法 toSearchableArray () 方法
/**
* 获取模型的可搜索数据
* @return array
*/
public function toSearchableArray()
{
$data = [
'id' => $this->id,
'name' => $this->name
];
return $data;
}
// 搜索的type
public function searchableAs()
{
return "_doc";
}
导入已存在表中的数据
php artisan scout:import "App\Model\Cate"
调用
$article = Cate::search($this->argument('query'))->get();
之后通过模型创建的数据都会自动同步到 elasticsearch
参考: