有条件地向 Laravel Scout 添加索引(Algolia)

Adding Index to Laravel Scout Conditionally (Algolia)

我正在尝试根据条件使用 Laravel Scout 向 Algolia 添加索引。例如,我有一个 Article 模型,如果文章是 active,我只想将这篇文章添加到 Algolia。我的第一个方法是:

public function toSearchableArray()
{
   if($this->active) return $record;
   return [];

}

这只会添加活动记录,但仍会尝试添加空数组,这在 algolia 中被视为操作(我将为此付费)。第二种方法是使用 scout 中的 shouldBesearchable() 函数:

public function shouldBeSearchable()
{
    if($this->active) return true;
    return false;

}

这不适用于 php artisan scout:import "App\Article"。有没有人遇到过类似的问题?

这是 Laravel Scout 中的错误,shouldBeSearchable 尚未发布(在 master 分支上),因此您可能会遇到类似的问题。

不过,好消息是:这个 PR 刚刚修复了它。 https://github.com/laravel/scout/pull/250