要在Neo4j中测试的查询

时间:2015-07-28 14:43:20

标签: graph neo4j cypher

为什么我无法通过此查询获得任何结果?我在这里做错了什么?

QUERY 1

MATCH (person:Person)-[:PRS_knows_PRS*1..2]-(friend:Person),
    (friend)<-[:CMT_hasCreator_PRS]-(friendPost:Post)-[:PST_hasTag_TAG]->(knownTag:Tag {nameTag:2})
WHERE not(person=friend)
MATCH (friendPost)-[:PST_hasTag_TAG]->(commonTag:Tag)
WHERE not(commonTag=knownTag)
WITH DISTINCT commonTag, knownTag, friend
MATCH (commonTag)<-[:PST_hasTag_TAG]-(commonPost:Post)-[:PST_hasTag_TAG]->(knownTag)
WHERE (commonPost)-[:CMT_hasCreator_PRS]->(friend)
RETURN
    commonTag.nameTag AS tagName,
    count(commonPost) AS postCount
ORDER BY postCount DESC, tagName ASC
LIMIT 3

QUERY 2

MATCH (person:Person)-[:PRS_knows_PRS*1..2]-(friend:Person)
WHERE not(person=friend)
WITH DISTINCT friend
MATCH (friend)-[worksAt:PRS_worksAt_ORG]->(company:Organisation)-[:ORG_isLocatedIn_PLC]->(:Country {name:{3}})
WHERE worksAt.workFromPWAO < {2}
RETURN
    friend.idPerson AS friendId,
    friend.firstNamePerson AS friendFirstName,
    friend.lastNamePerson AS friendLastName,
    worksAt.workFromPWAO AS workFromYear,
    company.nameOrganisation AS companyName
ORDER BY workFromYear ASC, friendId ASC, companyName DESC
LIMIT 4

我有这个节点,属性键和关系类型: Nodes - Property Keys - Relationship Types

你能帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

在您的查询中,您使用此关系名称:

  

worksAt:PRS_worksAt_ORG

但是在你的屏幕截图中,这个关系被称为'PRS_workAt_ORG'而没有workAt上的's'。

也许这就是第二个查询中缺少的内容?

答案 1 :(得分:0)

通常,逐步构建查询会有所帮助。

然后你会看到他们停止返回数据的位置。

查询的PROFILE(前缀)也应该有助于查看它开始返回ZERO行的位置。

也可能是其中一个标签和重新类型中的个案错字。

相关问题