我有一个依赖于下面第一个索引的查询。最近,我的应用程序的另一部分需要运行类似的查询;唯一的区别是它还需要按name
属性进行过滤。
原始索引:
- kind: Achievement
properties:
- name: region
- name: date_earned
direction: desc
新查询的建议附加索引:
- kind: Achievement
properties:
- name: name
- name: region
- name: date_earned
direction: desc
鉴于原始查询与第二个查询重叠(即它们都按降序查询region
和date_earned
),我是否需要保留两个索引,如上所示?
或者我能够组合这两个索引,因为第一个查询与第二个查询重叠?换句话说,如果我删除了第一个索引,那么region
和date_earned
仅查询的原始查询是否仍会在不抛出NeedIndexError
的情况下运行?
目标是减少我拥有的索引数量。谢谢!
答案 0 :(得分:0)
对于数据存储区索引,在您的情况下,如果您有以下索引:
您可以在同一GQL查询中查询一个或多个属性(形成索引)。 因此,您可以查询一个或多个属性的任意组合:'name','region','date_earned'。
确认是否需要索引的一种好方法是在App Engine应用程序的数据存储区查看器中运行GQL查询。因此,如果你有'name','region','date_earned'的索引,你可以运行你的GQL查询并确认你不需要一个单独的索引。