Когда и где создать индекс в Google App Engine для API поиска - Java - PullRequest
0 голосов
/ 28 декабря 2018

Я создаю веб-сервер Java в Google App Engine, чтобы выполнить полнотекстовый поиск в моей базе данных.Прежде чем я смогу выполнить поиск, мне нужно добавить все записи базы данных в индекс.Я должен сделать это только один раз, потому что индекс хранится в постоянном хранилище.Даже если GCP создаст новый экземпляр моего Java-сервера, индекс все равно должен быть там.

Мой вопрос: как мне настроить программу, чтобы она создавала индекс только один раз?Я пытался использовать Warming Services, но, насколько я понимаю, он будет вызываться каждый раз, когда создается новый экземпляр, поэтому в моем коде создания индекса будут избыточные вызовы

1 Ответ

0 голосов
/ 29 декабря 2018

Вы можете полностью отделить обновления индекса API поиска от жизненного цикла экземпляра, специально отслеживая обновления индекса для каждой соответствующей записи базы данных (или хранилища данных).

В основном вам нужно всего лишь добавить логическое свойство, указывающее, была ли сущность проиндексирована (конечно, с точки зрения API поиска) или нет.Затем вам нужно будет только обновить индекс с записями, для которых свойство не задано, что вы можете делать в случае прогрева / запуска экземпляра или с помощью периодических заданий cron, в зависимости от потребностей вашего приложения.

...