2012-02-25 103 views
0

我有几个问题。使用Neo4J REST API

如何通过属性查询节点?我只看到通过节点ID进行查询。

我怎么能得到,例如所有的朋友和未经证实的节点的朋友?目前我只能通过查询节点的所有关系来做到这一点,并通过检查每个关系的属性来遍历它。

我的想法如下:节点具有参数id(用户ID),关系具有属性 - 方向 - 从FROM_ME或TO_ME,状态 - CONFIRMED,UNCONFIRMED。所有的查询都是在Java的REST API中执行的。

如何以简单的方式来做到这一点,如在SQL中,f.e.,SELECT friends where friend_id = 1?

引用一些教程与解决方案,这些问题的技术qould理解

回答

1

要回答你的第一个问题,你可以使用索引由节点上的性能迅速找到节点。 Doc for REST here:http://docs.neo4j.org/chunked/milestone/rest-api-indexes.html

对于第二个问题,Cypher查询语言可以轻松执行这些类型的查询。这里是获取是通过朋友关系,其中关系的“状态”属性“确认”连接到给定用户的所有用户的例子:

START user=node(123) 
MATCH user-[r:FRIEND]-friend 
WHERE r.status="confirmed" 
RETURN friend 

您也可以在的方向添加约束关系链的多个关系一起在一个路径来寻找,朋友-的,朋友等

这里是Cypher支架文档:http://docs.neo4j.org/chunked/milestone/cypher-query-lang.html

这里是通过REST API制作的Cypher查询文档:http://docs.neo4j.org/chunked/milestone/rest-api-cypher.html

+0

感谢您的回答。我了解“朋友”是这种关系的财产吗?对?但什么是“朋友”?我只与财产“朋友”有关系。 – J3DI 2012-02-25 05:46:47

+0

关系的类型是什么?所有关系都有一个类型和一个方向以及零个或多个属性。查询的[r:TYPE]部分只过滤给定类型的关系,而“where”部分则根据各个属性进一步过滤。 – 2012-02-25 17:08:27