PHP — Laravel — Scout: Автоматическое индексирование для таблиц (моделей) базы данных, управляемых извне.

есть ли возможность автоматически индексировать таблицы базы данных, управляемые извне, с помощью Laravel Scout.

Например, я использую модель во внешней таблице базы данных из Laravel. Атрибуты будут изменены из подсистемы. После этого Laravel Scout должен автоматически автоматически индексировать новые данные. Он проверяет, возможно, какие записи были обновлены или созданы после последней индексации, и индексирует новые данные.

Возможно, уже существует какое-либо решение для этого.

Спасибо.


person Fl Re    schedule 06.02.2020    source источник


Ответы (1)


Поскольку ваша таблица находится во внешней базе данных, я предполагаю, что она доступна только для чтения. Запуск php artisan scout:import "App\Model" просто снова переиндексирует всю таблицу.

У меня похожая проблема. Записи будут вставлены в таблицу из внешнего процесса. Поскольку я использую пакет laravel-scout-postgres, в моей таблице есть столбец с именем searchable. Если он нулевой, то я знаю, что он не проиндексирован. В php artisan tinker я могу запустить что-то вроде $test = App\Models\MyModel::whereNull('searchable')->searchable();, чтобы проиндексировать эти записи. Я думаю, что в конечном итоге мне придется написать задачу/работу для индексации новых записей. Может быть, вы можете определить последние записи в своей таблице и проиндексировать их аналогичным образом?

person devNoise    schedule 26.06.2020