2011-05-28 105 views
0

我有一个包含父键的实体的模型。我想知道是否有可能通过特定的查询来获取父子关键字,这些子关键字在子实体上受到一些属性限制。Google App Engine数据存储区中的父键集群

我会试着举个例子。假设我们有一个人的名字,他们的父母(只是键),和自己喜欢的颜色:

 
| Name | Parent | Color | 
----------------------------- 
| Robert | Albert | Yellow | 
| Rupert | Albert | Yellow | 
| Gilbert | Albert | Green | 
| Q-bert | Rupert | Yellow | 

我希望查询以获得以下列表中没有重复的元素作为一个结果,对于颜色Yellow查询时:< Albert, Rupert >

请注意,我对孩子不感兴趣,只是父母的关键。还要注意,虽然我可以将Set<Key>中的重复键分组,这会破坏我的应用程序的分页。

我知道没有distinct查询,但搜索引擎通常具有“集群”功能来完成此任务。我相信数据存储的底层组织就像是一个全文搜索引擎的组织。这就是为什么我问。

顺便说一句,我正在使用低级Java数据存储API。

在此先感谢。

+1

*“我相信数据存储的底层组织就像一个全文搜索引擎。“* - 事实并非如此。 – Amber 2011-05-29 00:07:37

+0

感谢您的回复。顺便说一下,你有任何文件或链接,你可以指出这个潜在的组织? – mschonaker 2011-05-31 00:37:05

+0

Datastore构建于BigTable之上(http://labs.google.com/papers/bigtable.html)。它会为您的应用运行的每个查询创建索引(换句话说,您运行的每个查询都会触发一个索引);这就是为什么你可以运行的一组查询是如此受限制(因为只有允许使用单个索引的查询才是允许的)。 – Amber 2011-06-02 07:03:02

回答

2

GAE Datastore没有此功能。 (通常,数据存储不会对其返回的数据进行任何操作 - 唯一涉及的逻辑是选择要返回的项目。)

相关问题