从外部触发 Laravel Scout 更新 Laravel

Trigger Laravel Scout update from outside Laravel

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

我认为唯一的选择是使用 Laravel api 来处理 python 脚本和数据库之间的变化,这样只有 Laravel 可以直接通信到数据库。

但是,如果有一种方法可以在不使用 Laravel 的情况下向其添加监听器或其他任何东西,我真的更喜欢,因为 python 脚本真的很快。

有两种方法:

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

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

我建议你使用LaravelAPI。您可以简单地从 Python 脚本中调用 API URL。你需要写清楚Laravel控制器API的PHP代码,因为python很快,它需要与api.[=25=进行快速通信]


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

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

如果你想重新索引一切,这似乎是最适合你的方法,我会 execute php path/to/artisan scout:import "App\Model" via Python.

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