首页 > 解决方案 > 何时/何地在 Google App Engine for Search API 中创建索引 - Java

问题描述

我正在 Google App Engine 上创建一个 Java Web 服务器来对我的数据库进行全文搜索。在进行搜索之前,我必须将所有数据库条目添加到索引中。我应该只需要这样做一次,因为索引存储在持久存储中。即使 GCP 创建了我的 Java 服务器的新实例,索引应该仍然存在。

我的问题是,如何设置我的程序以便它只创建一次索引?我尝试过使用Warming Services,但据我了解,每次创建新实例时都会调用它,因此会对我的索引创建代码进行冗余调用

标签: javagoogle-app-enginegoogle-cloud-platform

解决方案


通过专门跟踪每个相应数据库(或数据存储)条目的索引更新,您可以将搜索 API 索引更新与实例生命周期完全分离。

基本上,您只需要添加一个布尔属性来指示实体是否已编入索引(当然,从搜索 API 的角度来看)。然后,您只需要使用未设置属性的条目来更新索引,您可以在实例预热/启动或通过定期 cron 作业执行此操作,具体取决于您的应用程序需求。


推荐阅读