int和Longs的Google App Engine索引条目

时间:2014-08-20 18:55:36

标签: google-app-engine

我们有一个实体

    @Entity
     public class Cow
     {
          @Id      private Long cowID;
          @Index   private int age;
          @Index   private long geoLoc;
                   private cowStuff cowData;
      // getters, setters, etc
     }

使用objectify,我们可以过滤一系列年龄和单个geoLoc(因为我们无法使用多个不等式过滤器)。为每个实体生成了多少索引条目,因为这两个索引是int&好久不过?

2 个答案:

答案 0 :(得分:1)

单个属性索引和多个属性索引略有不同。

Objectify使用@Id为您注释的字段创建单个属性索引。每个字段将产生一个索引条目(假设类型永远不会改变 - 在Objectify的情况下是一个安全的假设)

对于某些查询,appengine可以利用不同单个属性索引的组合。 但是,某些查询需要多个属性索引 - 您可以read more about that here

对于多个属性索引,您必须自己在datastore-indexes.xml中手动添加它们。

当您需要多属性索引时,开发服务器会提示您,并以xml片段的形式提出建议。

答案 1 :(得分:0)

取决于您在devserver上运行的查询。如果您没有在您的开发服务器中运行任何查询并按原样推送它,它将创建3个不同的索引(默认一个(ID),一个用于年龄,一个用于geoLoc)...也许3(不确定如何App Engine诚实地将自定义属性作为列处理。

如果您对您的实体运行查询,它将创建更多索引以便能够为这些查询提供服务。

如果你在python中,你可以查看你的“index.yaml”,如果你在java中,你可以在“WEB-INF / datastore-indexes.xml”里面查看你的devserver认为你可以使用的索引

PythonJava

的更多信息...