为什么dev-server不为此查询自动创建索引?

时间:2012-02-23 04:18:27

标签: java google-app-engine objectify

这是我的实体类的外观:

@Entity
@Unindexed
public class User {
    ...
    @Indexed
    private int betsCount = 0;

这是我构建/运行查询的方式:

objectify.query(User.class).filter("betsCount >", MIN_BETS).iterator()

索引没有被添加到datastore-indexes-auto.xml,因此我无法在开发控制台中看到它,当然查询(在实时服务器上运行时)什么都不返回。

我知道我可以手动添加索引(请求创建),但到目前为止,索引的自动创建似乎对我来说非常合适。所以我想知道我在这里失踪了什么。

更新:我没有意识到在将@Indexed注释添加到现有属性时必须重新插入数据。

1 个答案:

答案 0 :(得分:2)

您尝试运行的查询只需要一个属性索引。您无需为其指定自定义索引,也不会显示在索引页面中。

我怀疑您的问题与您使用@Unindexed,模型定义的其他内容或您正在使用的数据和标准有关。检查indexed / unindexed上的Objectify文档以获取索引的详细说明。我还要验证数据是否与您指定的条件实际匹配。