0

向数据存储索引添加键有一些限制吗?

我有 Test.java

@EntityBean(entityGroup="TestRoot", entityGroupKeyName="TestList")
public class Test implements Serializable, JSONConvertible {
    @Property(key=true,indexable=true)
    private String keyName;
    @Property(indexable=true)
    private String userCode;
    @Property(indexable=true)
    private String name;
...

在我的 datastore-indexes.xml 中:

<datastore-index kind="Flight" ancestor="true">
    <property name="keyName" direction="desc"/>
</datastore-index>

<datastore-index kind="Flight" ancestor="true" source="manual">
    <property name="keyName" direction="asc"/>
</datastore-index>

<datastore-index kind="Flight" ancestor="true">
    <property name="userCode" direction="desc"/>
</datastore-index>

<datastore-index kind="Flight" ancestor="true" source="manual">
    <property name="userCode" direction="asc"/>
</datastore-index>

<datastore-index kind="Flight" ancestor="true">
    <property name="name" direction="desc"/>
</datastore-index>

<datastore-index kind="Flight" ancestor="true" source="manual">
    <property name="name" direction="asc"/>
</datastore-index>

我的所有索引都处于服务状态

当我订购测试列表时,“userCode”和“name”可以正常工作,但“keyName”不能,有什么帮助吗?

4

1 回答 1

1

您应该阅读有关Key Filters的信息。默认情况下,GAE 已经对键进行了升序索引,因此无需构建。对于键的降序索引,试试这个:

<datastore-index kind="Flight" ancestor="true">
    <property name="__key__" direction="desc"/>
</datastore-index>
于 2012-09-05T11:04:39.737 回答