从Laravel外部触发Laravel Scout更新

时间:2017-08-26 06:43:01

标签: laravel algolia laravel-scout

我有一个Laravel后端,它基本上用作我的数据库及其数据的API和仪表板。每天使用Python脚本直接更新数据到数据库。有没有办法在PHP项目之外触发Laravel Scout更新(以便在Algolia中更新行)?

我认为唯一的选择是使用Laravel api来处理python脚本和数据库之间的更改,以便只有Laravel可以直接与数据库通信。

但是,我真的更喜欢是否有一种方法可以在不使用Laravel的情况下添加一个侦听器或其他任何内容,因为python脚本非常快。

2 个答案:

答案 0 :(得分:5)

如果你想重新索引所有内容,这似乎是最适合你的方法,我只需通过Python 执行 php path/to/artisan scout:import "App\Model"

如果你想更新每个模型,因为你只会编辑一个非常有限的数字,比如Giorgi说的,我会使用Algolia Python客户端并直接调用Algolia的API。写起来应该很容易。 https://github.com/algolia/algoliasearch-client-python

答案 1 :(得分:1)

有两种方法:

1)。 您可以使用Laravel API将Algolia条目更新到数据库中。

2)。也许你可以使用Algolia Python Library。

我建议你使用Laravel API。您只需从Python脚本中调用API URL即可。你需要编写清晰的Laravel控制器API的PHP代码,因为python很快,需要与api快速通信。

另外:您可以简单地使用名为flask的Python模块连接到您的laravel数据库,并在数据库中进行所需的更改。 (每个数据库都可以使用不同的编程语言进行管理,例如PHP,Ruby on Rails,Python等。)

只有laravel无法与您的数据库通信,它也可以通过Python完成(当然,它主要也可以来自laravel)。