阅读(658) (0)

Laravel 8 写引擎

2021-07-09 14:25:17 更新

如果内置的 Scout 搜索引擎不能满足你的需求,你可以编写自定义的引擎并且将它注册到 Scout。你的引擎需要继承 Laravel\Scout\Engines\Engine 抽象类,这个抽象类包含了你自定义的引擎必须要实现的八个方法:

use Laravel\Scout\Builder;

abstract public function update($models);
abstract public function delete($models);
abstract public function search(Builder $builder);
abstract public function paginate(Builder $builder, $perPage, $page);
abstract public function mapIds($results);
abstract public function map(Builder $builder, $results, $model);
abstract public function getTotalCount($results);
abstract public function flush($model); 

Laravel\Scout\Engines\AlgoliaEngine 类里查看这些方法的实现会对你有较大的帮助。这个类会为你在学习如何在自定义引擎中实现这些方法提供一个好的起点。