Google Firestore原生模式与Datastore模式已排除属性重索引差异确认
Firestore原生模式与Datastore模式的索引豁免行为对比
你的观察完全正确——Firestore原生模式下,仅通过控制台添加或移除索引豁免,就会自动重建包含所有现有记录的索引,不需要手动遍历重写文档。
以下是两种模式的具体差异:
Datastore模式的索引行为
- 修改属性的索引状态(索引改非索引/非索引改索引),仅对之后写入的实体生效
- 已存在的实体,其对应属性的旧索引条目会一直保留,直到该实体被更新或删除
- 要让所有现有实体的属性索引状态同步更新,必须手动遍历所有实体并执行更新操作(哪怕是空更新),才能触发索引重新生成
Firestore原生模式的索引行为
- 在控制台或通过
gcloud命令调整索引豁免规则后,Firestore会自动启动全量索引重建流程 - 这个流程会扫描所有现有文档,根据新的豁免规则更新对应属性的索引状态,全程无需手动干预
- 重建期间,旧索引会继续提供查询服务,直到新索引完全就绪后完成切换,不会影响业务的正常使用
额外说明
原生模式的这种自动重建能力,源于其底层索引系统与文档存储的深度集成,相比Datastore模式支持更灵活的动态索引调整。你可以通过Firestore控制台的「索引」页面查看重建进度,或使用gcloud firestore indexes composite list命令查询索引状态。
内容的提问来源于stack exchange,提问作者Toxtoth
相关产品推荐
相关产品推荐

