2

我正在使用 Laravel 显示数据库(SQL Server)中的项目列表,这些项目将由另一个软件更新。因此,使用 Laravel,我只显示项目,没有插入、更新或删除功能。

我正在使用 Laravel Scout 和 TNTSearch ( https://github.com/teamtnt/laravel-scout-tntsearch-driver ) 在项目列表中进行搜索。问题是,每次数据库表发生变化时如何刷新索引?

4

2 回答 2

1

我制作了一个包,可以使用 Scoutscout:flushscout:import命令刷新应用程序中任何位置的每个模型

https://github.com/tarreislam/laravel-scout-refresh

于 2022-02-19T11:04:44.447 回答
1

检查您拥有的索引,例如 elasticsearch

curl 'localhost:9200/_cat/indices?v'

health status index    uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   statuses GBNC5c4jQiqgNqBMEGJJJw   1   1          1            0      5.7kb          5.7kb
yellow open   users    Sndfs-KeQWeK6zv5p8BEpw   1   1         52            7     72.6kb         72.6kb

删除所需的索引

curl -XDELETE 'localhost:9200/statuses'

重新导入数据

php artisan scout:import "App\Status"

删除的另一个快捷方式是

php artisan scout:flush "App\Status"
于 2021-03-22T18:09:43.433 回答