1

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

我的模型:

class Post extends Model
{
    use Searchable;
}

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

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

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

正在创建索引,但未导入数据。

meilisearch 和 Scout 包的配置相同,适用于其他一些模型。

4

3 回答 3

7

我自己也遇到过这个问题,遇到了你的问题。我不认为您正在指定应该存储在索引中的内容是吗?

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

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

无论如何,事实证明您的toSearchableArray方法还必须返回数组中的主键,否则记录不会被索引。

public function toSearchableArray(): array
{
    return [
        'id'   => $this->getKey(), // this *must* be defined
        'name' => $this->name,
    ];
}
于 2021-08-27T12:35:19.673 回答
0

您可以尝试设置:

SCOUT_QUEUE=false

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

于 2021-08-04T08:27:54.217 回答
0

对于索引,您可以尝试:

php artisan scout:index posts

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

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

于 2021-08-27T14:39:41.673 回答