diff --git a/src/Commands/RebuildDocumentsCommand.php b/src/Commands/RebuildDocumentsCommand.php index 7c215f2..26bfe4c 100644 --- a/src/Commands/RebuildDocumentsCommand.php +++ b/src/Commands/RebuildDocumentsCommand.php @@ -9,10 +9,11 @@ use Illuminate\Contracts\Container\Container; use Illuminate\Contracts\Queue\Queue; use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Model; +use MeiliSearch\Client; class RebuildDocumentsCommand extends Command { - protected $signature = 'blomstra:search:documents:rebuild'; + protected $signature = 'blomstra:search:documents:rebuild {--flush : Flush the indices}'; protected $description = 'Rebuilds the complete search server with its documents.'; public function handle(Container $container) @@ -23,11 +24,17 @@ class RebuildDocumentsCommand extends Command /** @var Queue $queue */ $queue = $container->make(Queue::class); + /** @var Client $meili */ + $meili = $container->make(Client::class); + /** @var Schema $schema */ foreach ($schemas as $schema) { /** @var Model $model */ $model = $schema::model(); + // Flush the index. + if ($this->option('flush')) $meili->index($schema::index())->delete(); + $model::query()->chunk(50, function (Collection $collection) use ($model, $queue) { $queue->push(new SavingJob($model, $collection)); diff --git a/src/Schemas/DiscussionSchema.php b/src/Schemas/DiscussionSchema.php index 83e1c01..a48a1c7 100644 --- a/src/Schemas/DiscussionSchema.php +++ b/src/Schemas/DiscussionSchema.php @@ -44,11 +44,10 @@ class DiscussionSchema extends Schema })->flatten(); } - if (! $permissions) { + if (! $permissions || $permissions->isEmpty()) { $permissions = Permission::query() ->where('permission', 'viewForum') - ->pluck('group_id') - ->get(); + ->pluck('group_id'); } $filters['groups'] = $permissions->toArray();