我的GAE应用程序在“数据存储区索引”选项卡中没有索引,它只以Blob格式存储临时数据(从不超过1兆,即只有1个blob实体),但仍然会产生大约一千个索引写入Ops和数据存储区的“已使用”比例不断增长。
我知道使用Google提供的命令行实用程序清除索引是可能的,但有没有办法完全避免索引根本不应编入索引的数据?或者至少从应用程序本身清除它们?
UPD:我使用Java。
答案 0 :(得分:1)
为了避免在您的应用不需要过滤的属性上创建无用的索引,您可以将indexed
类的Property
参数设置为False。
<强>索引强>
此属性是否应包含在内置和 开发人员定义的索引。 如果为False,则实体写入数据存储区 永远不会被对此排序或过滤的查询返回 属性,类似于Blob和Text属性。
文档here。
答案 1 :(得分:1)
我找到了一个非常简单的解决方案:你可以告诉GAE不应该使用JDO注释索引某个属性:
@Persistent
@Extension(vendorName = "datanucleus", key = "gae.unindexed", value = "true")
private Blob b;