我有一个实体定义为:
a Integer
b Float
type String
type STRING <--- Indexed property
我运行没有排序的查询,并返回结果。
SELECT * FROM com_MyDomain WHERE type = 'GENERAL'
如果我添加排序,查询将不返回任何结果。
SELECT * FROM com_MyDomain WHERE type = 'GENERAL' ORDER BY b, a
我还有一个索引(应用引擎控制台中的服务状态)定义为:
<datastore-index kind="com_MyDomain"
ancestor="false" source="manual">
<property name="type" direction="asc" />
<property name="b" direction="asc" />
<property name="a" direction="asc" />
</datastore-index>
答案 0 :(得分:1)
我唯一能想到的是你的实体没有b或a的价值。
如上所述:
忽略查询中指定的属性的实体
同类实体不需要具有相同的属性。要符合查询结果的条件,实体必须拥有查询过滤器和排序顺序中命名的每个属性的值(可能为null)。如果不是,则从用于执行查询的索引中省略该实体,因此不会将其包括在查询的结果中。
(来自https://developers.google.com/appengine/docs/python/datastore/queries下的&#39;查询限制&#39;)
因此,唯一符合逻辑的事情似乎是您的数据没有填充或填充。