【发布时间】:2018-08-18 10:42:57
【问题描述】:
由于某种原因,我使用 google 数据存储的复合索引之一无法正常工作。
我得到以下查询的零结果:
SELECT * FROM `Foobar` WHERE `ver` = 20180814 AND `level` = 1
但是索引是如何创建的(尽管它是在几天前创建的,但显示为零大小):
我仔细检查了这些字段都是整数,并且我在本地 sdk 上也得到了零结果。
index.yaml:
indexes:
- kind: Foobar
properties:
- name: ver
- name: level
direction: desc
【问题讨论】:
-
自创建此索引以来您是否添加过数据?索引属性不会影响在此索引操作之前可能已创建的任何现有实体。
-
@Mangu 这是一个复合索引,而不是实体级别的属性索引。这意味着不需要实体更新即可工作 - 但无论如何我也添加了数据,但不幸的是没有运气。
-
好的事实证明,复合索引可能需要属性本身也被索引...不确定我是否在任何文档中错过了这一点,但会仔细检查..
-
来自Index definition and structure:
An entity is included in the index only if it has an indexed value set for every property used in the index;
标签: google-app-engine google-cloud-datastore