是否可以toSearchableArray
在更新记录时禁用,或者有没有办法只更新搜索索引中记录中的特定字段?
例如:
public function toSearchableArray()
{
$item = $this->toArray();
$item['title'] = $this->title;
...
...
...
$item['category'] = $this->category->category_name;
$item['uploaded_at'] = Carbon::now('America/Montreal')->timestamp;
}
现在唯一的问题是每次我更新一条记录时,它也会重置它的 Uploaded_at 时间戳并重新加载关系,这是我不需要的另一个查询,因为它在我创建项目时已经设置了它。
那么有什么办法可以暂时禁用toSearchableArray
吗?我只需要更新索引行中的几个字段,因此无需重新运行 toSearchableArray 中的所有内容
像下面一样只更新标题,然后在我的 algolia 索引中更新标题,而无需再次重置uploaded_at
或加载category
关系
$order = App\Order::find(1);
$order->title = 'a new title'
$order->save();