java - 何时/何地在 Google App Engine for Search API 中创建索引 - Java
问题描述
我正在 Google App Engine 上创建一个 Java Web 服务器来对我的数据库进行全文搜索。在进行搜索之前,我必须将所有数据库条目添加到索引中。我应该只需要这样做一次,因为索引存储在持久存储中。即使 GCP 创建了我的 Java 服务器的新实例,索引应该仍然存在。
我的问题是,如何设置我的程序以便它只创建一次索引?我尝试过使用Warming Services,但据我了解,每次创建新实例时都会调用它,因此会对我的索引创建代码进行冗余调用
解决方案
通过专门跟踪每个相应数据库(或数据存储)条目的索引更新,您可以将搜索 API 索引更新与实例生命周期完全分离。
基本上,您只需要添加一个布尔属性来指示实体是否已编入索引(当然,从搜索 API 的角度来看)。然后,您只需要使用未设置属性的条目来更新索引,您可以在实例预热/启动或通过定期 cron 作业执行此操作,具体取决于您的应用程序需求。
推荐阅读
- r - 如何在 r 中的 which.min() 函数中返回多个值
- c# - 如何突出显示 DataGridView 中的单词
- sql - 没有来自 group by / 有查询的值
- ansible - 如何在 ansible playbook 中添加带有单个用户的单个服务器?
- user-interface - (Rust + GTK) GtkFrame 小部件的显示内容不能在点击 GtkButton 小部件的事件句柄关闭时被动态替换
- php - 在不使用子查询的情况下按升序返回最后 N 行
- html - 如何根据屏幕宽度和内容制作可调整的字体大小?css
- apache-spark - 在 pyspark 中使用 Parquet UUID LogicalType
- c++ - 如何编写在参数数组长度上递归的 CPP 模板函数
- java - 在日期范围内搜索时没有价值