数据存储索引不适用于 属性 即 JSON 字符串
Datastore Index Not working for property that is JSON string
Datastore 中的以下查询 return 预期的结果数:
SELECT timestamp from leadgenie_campaign_model_dev where campaign = "3667f39d-a3ff-4acb-b1ca-6f730bbc7989"
此查询由允许投影的索引支持。
但是这个没有 return 任何结果,尽管索引也存在。 attrs
是一个 JSON 字符串
SELECT timestamp, attrs from leadgenie_campaign_model_dev where campaign = "3667f39d-a3ff-4acb-b1ca-6f730bbc7989"
索引规范如下:
indexes:
- kind: leadgenie_campaign_model_dev
properties:
- name: campaign
- name: attrs
- name: timestamp
- kind: leadgenie_campaign_model_dev
properties:
- name: campaign
- name: timestamp
- name: attrs
- kind: leadgenie_campaign_model_dev
properties:
- name: campaign
- name: timestamp
你的 attrs 字段是否超过 1,500 字节?这是要索引的字符串 属性 的限制。参见 https://cloud.google.com/datastore/docs/concepts/limits。
解决方案是在专门为这些属性创建索引后,将子属性包含在查询中。
SELECT timestamp, attrs.score, attrs.sz from leadgenie_campaign_model_dev where campaign = "3667f39d-a3ff-4acb-b1ca-6f730bbc7989"
google.api_core.exceptions.FailedPrecondition: 400 no matching index found. recommended index is:
- kind: leadgenie_campaign_model_dev
properties:
- name: campaign
- name: attrs.score
- name: attrs.sz
- name: timestamp
Datastore 中的以下查询 return 预期的结果数:
SELECT timestamp from leadgenie_campaign_model_dev where campaign = "3667f39d-a3ff-4acb-b1ca-6f730bbc7989"
此查询由允许投影的索引支持。
但是这个没有 return 任何结果,尽管索引也存在。 attrs
是一个 JSON 字符串
SELECT timestamp, attrs from leadgenie_campaign_model_dev where campaign = "3667f39d-a3ff-4acb-b1ca-6f730bbc7989"
索引规范如下:
indexes:
- kind: leadgenie_campaign_model_dev
properties:
- name: campaign
- name: attrs
- name: timestamp
- kind: leadgenie_campaign_model_dev
properties:
- name: campaign
- name: timestamp
- name: attrs
- kind: leadgenie_campaign_model_dev
properties:
- name: campaign
- name: timestamp
你的 attrs 字段是否超过 1,500 字节?这是要索引的字符串 属性 的限制。参见 https://cloud.google.com/datastore/docs/concepts/limits。
解决方案是在专门为这些属性创建索引后,将子属性包含在查询中。
SELECT timestamp, attrs.score, attrs.sz from leadgenie_campaign_model_dev where campaign = "3667f39d-a3ff-4acb-b1ca-6f730bbc7989"
google.api_core.exceptions.FailedPrecondition: 400 no matching index found. recommended index is:
- kind: leadgenie_campaign_model_dev
properties:
- name: campaign
- name: attrs.score
- name: attrs.sz
- name: timestamp