用于遍历图表的密码查询

时间:2014-02-20 05:08:30

标签: neo4j cypher cql

我正在使用last.fm数据集并将其导入neo4j 2.0.1。现在我想遍历图表,以便我可以获得类似的结果,我通过执行以下 MySQL查询获得:

SELECT * from music.logs, music.features, music.nodespart2
WHERE logs.song="1000001" 
    AND logs.song=features.scrobble 
    AND fetures.mbid=nodespart2.name;

neo4j 我想执行类似的查询, 从特定index lets say 1000001->logs->features开始...... 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我对图模型还不太确定,你在节点和关系中存储了什么属性。但是从你分享的链接我认为下面的查询应该有效..

 MATCH (a)-[:LOGS]->(b)-[:FEATURES]->(c) where a.type="listener" 
 and b.type="scrobble"
 and c.type="track" and b.name = "100001" return *

这将提供与名称为listeners的特定tracks相关的所有scrobble1000001

评论后编辑

 MATCH (b)-[:FEATURES]->(c) where b.type="scrobble" and c.type="track" 
 and b.name = "100001" return c.title

我建议您使用Labels重新导入数据集。有关标签的更多信息:here。它将一次又一次地节省检查类型的工作量,并使您能够将其合并到匹配模式本身中;也更有效率。

添加标签后

编辑

查询1:

MATCH (a:listener)-[:LOGS]->(b:scrobble)-[:FEATURES]->(c:track) 
where b.name = "100001" return *

QUERY2:

MATCH (b:scrobble)-[:FEATURES]->(c:track) where b.name = "100001" return c.title