Laravel Scout (Meilisearch) - 说导入数据,但没有

Laravel Scout (Meilisearch) - Says imported data, but doesn't

我已经安装并配置了 meilisearch + Laravel Scout 包。

我的模特:

class Post extends Model
{
    use Searchable;
}

当我运行php artisan scout:import 'App\Models\Post'它returns:

Imported [App\Models\Post] models up to ID: 5
All [App\Models\Post] records have been imported.

但是当我检查索引时,它是空的。为什么?

The index is being created, but the data doesn't get imported.

The same configuration of meilisearch and Scout package, works for some other models.

您可以尝试设置:

SCOUT_QUEUE=false

检查您的队列是否没有问题并运行再次导入。

我自己刚刚 运行 研究过这个问题并遇到了你的问题。我不认为你在指定索引中应该存储什么,是吗?

即在您的模型中,您是否创建了如下所示的 toSearchableArray 方法...

public function toSearchableArray(): array
{
    return [
        'name' => $this->name,
    ];
}

如果有的话,原来你的toSearchableArray方法必须也return数组内的主键,否则记录得不到索引。

public function toSearchableArray(): array
{
    return [
        'id'   => $this->getKey(), // this *must* be defined
        'name' => $this->name,
    ];
}

对于索引你可以试试:

php artisan scout:index posts

您的队列没有其他问题,运行 再次导入。

如果您有 SCOUT_QUEUE=true 那么请使用 php artisan queue:work --daemon 启动您的队列,您的数据将开始导入。