Neo4j Cypher-返回节点及其与关系上计数约束的关系

Neo4j Cypher-返回节点及其与关系上计数约束的关系,neo4j,cypher,nosql,Neo4j,Cypher,Nosql,这个问题涉及到 为了更好地理解我的问题,我解释了我的小用例: 我有这种图表 (doc)-[contain]-(句)-[with]-(word) 节点(word)之间可以有语义关系(word)-[rel]-(word) 我想返回(doc),返回的数字为[rel]>10 此查询可以执行以下操作: MATCH (doc:document)-[contain]-(sentence)-[with]-(ng1:word)-[rel:relations]-(ng2:word) WITH doc, count(

这个问题涉及到

为了更好地理解我的问题,我解释了我的小用例:

我有这种图表
(doc)-[contain]-(句)-[with]-(word)

节点(word)之间可以有语义关系
(word)-[rel]-(word)

我想返回(doc),返回的数字为[rel]>10

此查询可以执行以下操作:

MATCH (doc:document)-[contain]-(sentence)-[with]-(ng1:word)-[rel:relations]-(ng2:word)
WITH doc, count(rel) as nbRels, collect(rel) as rels
WHERE nbRels > 10 RETURN doc, nbRels, rels
但我不知道每一个[rel]的发现都与什么(词)有关

是否有可能知道并返回该信息


谢谢,

未测试,但您应该能够解开
rels
集合并拉出开始和结束节点。比如:

MATCH (doc:document)-[contain]-(sentence)-[with]-(ng1:word)-[rel:relations]-(ng2:word)
WITH doc, count(rel) as nbRels, collect(rel) as rels
WHERE nbRels > 10
WITH doc, UNWIND(rels) as rel,
RETURN doc, STARTNODE(rel), ENDNODE(rel)
但你可能只是想先收集一些不同的东西:

MATCH (doc:document)-[contain]-(sentence)-[with]-(ng1:word)-[rel:relations]-(ng2:word)
WITH doc, ng1, collect(ng2) as rels
WHERE LENGTH(rels) > 10 
RETURN doc, ng1, rels

你好,非常感谢!你的回答对我帮助很大。这是一个语法正确的查询(如果你想编辑你的答案)
MATCH(doc:document{docid:5881})-[contain](句子)-[with](ng1:word)-[rel:relations]-(ng2:word)with doc,count(rel)as nbrells,collect(rel)as rels其中nbrells>10 with doc,rels diswind rels as rel RETURN doc,STARTNODE(rel),ENDNODE(rel)
再次感谢你,