2013-07-02 58 views
0

我们有以下场景: - 有一个用户对象,高达100万 - 有不同种类的Car对象(假设有Mercedes,Ferrari,Porsche, BMW),也达1个亿个对象Neo4j中的节点属性索引<2.0

随着图形数据库中我可以模拟很容易的用户A喜欢汽车B,我可以非常有效地找到什么车是由用户A.喜欢

然而,如何我可以有效地找到所有用户节点吗?我看到了很酷的Neo4j 2.0 Schema Types,但是目前我必须使用Neo4j 1.8。 我是否必须使用像“nodeProperty”这样的属性值=用户的用户和价值=汽车的汽车找到他们?这是否有效?

我该如何有效地运行搜索从某一年的汽车,并具有一定的颜色? (假设Car对象可能具有此属性)我是否必须遍历所有Cars并查找它?或者Neo4j的想法是我创建了一个拥有所有年份的超级节点,并将所有Cars连接到相应的年度节点?

回答

1

你可以索引每一个用户的某些属性,如用户ID很容易地找到所有用户节点(http://docs.neo4j.org/chunked/stable/indexing.html

对于汽车,你只是想搜索某一年和颜色的车?还是你想用这些做更详细的查询?

如果你只是想直接搜索,那么你也可以考虑索引。否则年度节点,甚至可能是颜色节点将是我会这样做的方式。 请注意,您可以同时使用索引(年份和颜色索引)以及年份/颜色节点。在进行更多涉及查询之前,索引可能有助于查找一组起始节点。如果颜色在这些查询中很重要,那么让汽车与颜色相关将比汽车上的颜色好得多(因为必须频繁检查属性,这比遍历关系更不理想)。 与所有建模查询一样,取决于您希望如何处理数据。希望有所帮助。

+0

是的,谢谢你的提示和建议。 – akohout