Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 是否可以使用具有列表属性和排序顺序的复合索引?_Google App Engine_Indexing_Google Cloud Datastore - Fatal编程技术网

Google app engine 是否可以使用具有列表属性和排序顺序的复合索引?

Google app engine 是否可以使用具有列表属性和排序顺序的复合索引?,google-app-engine,indexing,google-cloud-datastore,Google App Engine,Indexing,Google Cloud Datastore,如果没有,为什么没有 以下索引始终无法在生产服务器上构建,即使我认为只要索引不排序或与任何其他属性匹配,就可以使用列表属性进行排序 - kind: Foo properties: - name: location_geocells - name: time direction: desc 如果允许这样的复合索引,是否有任何原因导致我无法创建此索引?同一模型上其他指标的存在是否会增加失败的可能性 排序顺序与列表属性的组合是否需要N个以上的条目,其中N是列表属性中的值数?(如果

如果没有,为什么没有

以下索引始终无法在生产服务器上构建,即使我认为只要索引不排序或与任何其他属性匹配,就可以使用列表属性进行排序

- kind: Foo
  properties:
  - name: location_geocells
  - name: time
    direction: desc
如果允许这样的复合索引,是否有任何原因导致我无法创建此索引?同一模型上其他指标的存在是否会增加失败的可能性

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

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


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

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


你不清楚为什么它“不起作用”。你遇到了什么问题?

关于这类事情有成文的规则。其中之一是appengine按照一定的顺序对索引字段进行排序:先按祖先排序、先按主排序、再按相等筛选器排序、再按不等筛选器排序,最后按排序顺序排序。Appengine不会识别您要求的任何定制订单。

对不起,应该更具体一些。当我尝试在appspot服务器上构建索引时,它总是以错误状态结束。(更新了我的问题,使之更加清晰。)回答这个问题是非常重要的。其意图是每个列表只有16个项目,但是一个bug导致一些实体在列表中有数百(400+)个项目,这可能是我们的问题。列表中有多少项太多,此索引无法工作?或者,回到我原来的问题,我如何计算一个由N个项目组成的列表上的综合索引需要多少个索引项?400不应该太多,以至于它失败了——它只应该在数千个项目中出现问题——但减少它肯定会有所帮助。至于如何计算索引项的数量,它大致是复合索引中每个项的值的数量的乘积。我粗略地说,因为引入祖先索引,以及多次索引同一字段的索引会使计算复杂化。你能进一步解释一下吗。您是否已在生产服务器(appspot)上创建并提供索引,或者该索引处于挂起状态或根本未创建。对不起,应该更具体一些。当我尝试在appspot服务器上构建索引时,它总是(在提供服务之前)处于错误状态。(更新了我的问题以更清楚地说明问题。)是否可能您已达到100个索引的限制,或者尝试向数据库中尚不存在的属性添加索引,例如,您向模型中添加了新属性,并对其进行了索引,但将更改上载到生产服务器时,该属性仍未在数据存储中创建?