Laravel侦察员使用ElasticSearch,如何重置索引?

时间:2016-11-16 11:22:34

标签: laravel elasticsearch laravel-5.3

我正在开发一个Laravel项目,我在模型商品上使用https://laravel.com/docs/5.3/scout和ElasticSearch。

使用命令php artisan scout:import "App\Models\Offer",我可以从我的数据库中使用offers生成ElasticSearch的索引,并且没问题。之后,我可以在此索引中搜索offers

但是现在,我从我的数据库中删除了一些offers,而且我不知道如何重置或重新生成删除旧ID的索引?

例如,我删除了数据库中的Offer with id = 15,但是当我进行搜索时,此商品(id = 15)始终被编入索引,并且因为此商品不存在而收到错误。< / p>

我尝试重新运行命令scout:import但没有效果。我喜欢的唯一解决方案是用https://laravel.com/docs/master/scout#configuring-model-indexes重命名索引,但我不能每次都这样做......

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您可以使用php artisan scout:flush "App\Models\Offer"

您还可以从storage文件夹

中删除索引的物理文件

答案 1 :(得分:-1)

当您对声明为Searchable的任何Model进行删除/更新时,驱动程序应自动删除/更新记录。

要刷新模型,请使用:php artisan scout:import Model

您可以查看错误区域的laravel-scout,可能有相关内容或尝试更新L5.4