【发布时间】:2011-06-11 13:49:33
【问题描述】:
我对一些 GAE 文档感到有些困惑。虽然我打算添加索引以优化我的应用程序的性能,但我想澄清一下它们是仅出于此目的而建议的,还是真的需要它们。
查询找不到属性值 未编入索引的。这包括 标记为非的属性 索引,以及与属性 长文本值类型的值 (文本)或长二进制值类型 (斑点)。
带有过滤器或排序顺序的查询 属性永远不会匹配实体 其属性值为 Text 或 Blob,或用 该属性标记为未编入索引。 具有此类值的属性表现为 如果没有设置属性 查询过滤器和排序顺序。
来自http://code.google.com/appengine/docs/java/datastore/queries.html#Introduction_to_Indexes
第一段让我相信您根本无法对未索引的属性进行排序或过滤。但是,第二段让我认为这种限制只限于 Text 或 Blob 属性或特别注释为未索引的属性。
我很好奇这种区别,因为我有一些数字和字符串字段,我目前在生产环境中对其进行排序/过滤,这些字段没有索引。这些查询正在后台任务中运行,该任务大多不关心性能(宁愿在这种情况下针对大小/成本进行优化)。我是不是很幸运这些返回了正确的数据?
【问题讨论】:
标签: google-app-engine google-cloud-datastore