模型中定义全文搜索;
此处以文章表为示例;
app/Models/Article.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Laravel\Scout\Searchable;
class Article extends Model
{
use Searchable;
/**
* 索引的字段
*
* @return array
*/
public function toSearchableArray()
{
return $this->only('id', 'title', 'content');
}
}
生成索引;
php artisan scout:import "App\Models\Article"
使用起来也相当简单;
只需要把要搜索的内容传给 search() 方法即可;
routes/web.php
<?php
use App\Models\Article;
Route::get('search', function () {
// 为查看方便都转成数组
dump(Article::all()->toArray());
dump(Article::search('功能齐全的搜索引擎')->get()->toArray());
});