是否可以使用list属性和排序顺序的复合索引?

时间:2010-04-22 03:25:38

标签: google-app-engine indexing google-cloud-datastore

如果没有,为什么不呢?

以下索引始终无法在生产服务器上构建,即使我认为只要索引没有对任何其他属性进行排序或匹配,我就可以使用list属性的排序顺序。

- kind: Foo
  properties:
  - name: location_geocells
  - name: time
    direction: desc

如果允许这样的复合索引,是否有任何理由可能无法为我创建此索引?在同一模型上是否存在其他指数会增加这种失败的可能性吗?

排序顺序与列表属性的组合是否需要多于N个条目,其中N是列表属性中的值的数量? (如果是,需要多少?)

更新:我遇到的错误只是索引无法在appspot服务器上构建,在尝试添加索引时始终处于Error状态。据我了解索引文档,我看不到更详细的日志,但推断必须有一些实体,这个索引需要超过5000个条目,这让我感到惊讶,因为location_geocells StringListProperty只有16个项目对于每个实体,除非我错误地计算了该索引需要多少索引条目(因此我的问题)。

如果还有其他方法可以在错误状态下调试索引(比如创建索引时出错的日志),那将是非常宝贵的信息。

2 个答案:

答案 0 :(得分:1)

是 - 列表属性被索引为“多值属性”,每个列表条目有一个索引行。您指定的索引应该可以正常工作。

你没有具体说明为什么它“不起作用”。你遇到什么问题?

答案 1 :(得分:1)

有关于此类事情的文件规则。其中之一是appengine按照特定顺序对索引字段进行排序:按祖先,主要,然后是相等过滤器,然后是不等式过滤器,最后按排序顺序排序。 Appengine不会识别您要求的任何自定义排序。