0

我只是按照https://developers.google.com/appengine上的“高级搜索”理念手动指定了一些额外的索引,然后部署到现有应用程序(Python SDK v1.7.5,使用 DB Datastore)/文章/索引选择

索引已构建,但现在对于某些涉及特定实体属性 X 的查询,我收到此错误,该属性定义为db.StringProperty

“错误:数据存储中的属性 X 已损坏;它有多个值,但未标记为多值。”

这是否意味着数据存储中的至少一个实体已将 X 设置为列表而不是字符串?

我这样想,然后跑了create_bulkloader_config,它分析了数据存储。对于有问题的实体,它说:

- property: X
  external_name: X
  # Type: String Stats: 5031 properties of this type in this kind.
4

1 回答 1

0

错误的原因是索引指定了有问题的属性两次,即:

kind: MyEntity
properties:
- name: X
- name: X

kind: MyEntity
properties:
- name: X
- direction: desc
  name: X

(这些是在大约 20 个索引列表中自动生成的。)

从中删除这些index.yaml然后调用appcfg.py vacuum_indexes有问题的应用程序解决了这个问题。

于 2013-11-13T15:25:59.077 回答