【发布时间】:2011-09-04 03:19:37
【问题描述】:
我有一个包含父键的实体模型。我想知道在给定子实体的某些属性限制的情况下,是否可以进行特定查询以仅获取父母的键。
我会试着举个例子。假设我们有人名、他们的父母(只是关键)和他们最喜欢的颜色:
|姓名 |家长 |颜色 | ----------------------------------------- |罗伯特 |阿尔伯特 |黄色 | |鲁珀特 |阿尔伯特 |黄色 | |吉尔伯特 |阿尔伯特 |绿色 | | Q-伯特 |鲁珀特 |黄色 |当查询颜色Yellow:< Albert, Rupert >时,我希望查询得到以下列表,结果不包含重复元素。
请注意,我对孩子不感兴趣,只对父母的钥匙感兴趣。另请注意,尽管我可以将重复的键分组到 Set<Key> 中,但这会破坏我的应用程序的分页。
我知道没有distinct 查询,但搜索引擎通常具有“集群”功能来完成这项任务。而且我相信Datastore的底层组织就像一个全文搜索引擎的组织。这就是我问的原因。
顺便说一句,我使用的是低级 Java 数据存储 API。
提前致谢。
【问题讨论】:
-
“而且我相信 Datastore 的底层组织就像一个全文搜索引擎的组织。” -- 不是。
-
感谢您的回复。顺便说一句,你有任何文件或链接可以指出这个底层组织吗?
-
数据存储建立在 BigTable (labs.google.com/papers/bigtable.html) 之上。它为您的应用程序运行的每个查询创建索引(换句话说,您运行的每个查询都会命中一个索引);这就是您可以运行的查询集如此受限的原因(因为只允许使用单个索引的查询)。
标签: java google-app-engine google-cloud-datastore