Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance Neo4J Cypher-获取多篇文章中一组3个引号的计数_Performance_Neo4j_Cypher - Fatal编程技术网

Performance Neo4J Cypher-获取多篇文章中一组3个引号的计数

Performance Neo4J Cypher-获取多篇文章中一组3个引号的计数,performance,neo4j,cypher,Performance,Neo4j,Cypher,我已经多次尝试实现这一点,但到目前为止还无法实现,因此在堆栈溢出中发布 在我当前的应用程序中,我们需要找到同时出现的3个引号的不同集合的时间。背景是 一篇文章可以包含多个引号,同一个引号可以出现在多篇文章中,我需要找出所有这些引号在一对3中是需求量最大的,尝试用Cypher实现这一点,但它似乎非常复杂 插入查询如下所示 CREATE (ART449211:Article {id: '449211', pages:20, author: 'MAT LONG' }) CREATE (ART55923

我已经多次尝试实现这一点,但到目前为止还无法实现,因此在堆栈溢出中发布

在我当前的应用程序中,我们需要找到同时出现的3个引号的不同集合的时间。背景是 一篇文章可以包含多个引号,同一个引号可以出现在多篇文章中,我需要找出所有这些引号在一对3中是需求量最大的,尝试用Cypher实现这一点,但它似乎非常复杂

插入查询如下所示

CREATE (ART449211:Article {id: '449211', pages:20, author: 'MAT LONG' })
CREATE (ART559233:Article {id: '559233', pages:78, author: 'ANDREW KING' })
CREATE (ART765432:Article {id: '765432', pages:65, author: 'STEPHEN JOHN' })
CREATE (ART112244:Article {id: '112244', pages:30, author: 'REV PHILIP' })
CREATE (ART908789:Article {id: '908789', pages:40, author: 'JOE MUSK' })
CREATE (ART123321:Article {id: '123321', pages:63, author: 'KING KONG' })
CREATE (ART887651:Article {id: '887651', pages:18, author: 'LILY MATHEW' })
CREATE (ART800704:Article {id: '800704', pages:24, author: 'GEORGE L' })
CREATE (ART600333:Article {id: '600333', pages:10, author: 'SHIRIN JOHN' })

CREATE (QUOTE123456:Quote {num: '123456', name : 'QUOTE A', desc: 'QUOTE A-TEXT' })
CREATE (QUOTE765980:Quote {num: '765980', name : 'QUOTE B', desc: 'QUOTE B-TEXT' })
CREATE (QUOTE987681:Quote {num: '987681', name : 'QUOTE C', desc: 'QUOTE C-TEXT' })
CREATE (QUOTE876982:Quote {num: '876982', name : 'QUOTE D', desc: 'QUOTE D-TEXT' })
CREATE (QUOTE776983:Quote {num: '776983', name : 'QUOTE E', desc: 'QUOTE E-TEXT' })
CREATE (QUOTE765984:Quote {num: '765984', name : 'QUOTE F', desc: 'QUOTE F-TEXT' })
CREATE (QUOTE436724:Quote {num: '436724', name : 'QUOTE G', desc: 'QUOTE G-TEXT' })
CREATE (QUOTE362984:Quote {num: '362984', name : 'QUOTE H', desc: 'QUOTE H-TEXT' })
CREATE (QUOTE764444:Quote {num: '764444', name : 'QUOTE I', desc: 'QUOTE I-TEXT' })
CREATE (QUOTE888984:Quote {num: '888984', name : 'QUOTE J', desc: 'QUOTE J-TEXT' })

CREATE (QUOTE654009:Quote {num: '654009', name : 'QUOTE K', desc: 'QUOTE K-TEXT' })
CREATE (QUOTE431110:Quote {num: '431110', name : 'QUOTE L', desc: 'QUOTE L-TEXT' })
CREATE (QUOTE565678:Quote {num: '565678', name : 'QUOTE M', desc: 'QUOTE M-TEXT' })
CREATE (QUOTE009876:Quote {num: '009876', name : 'QUOTE N', desc: 'QUOTE N-TEXT' })
CREATE (QUOTE543222:Quote {num: '543222', name : 'QUOTE O', desc: 'QUOTE O-TEXT' })

CREATE
(ART449211)-[:CONTAINS]->(QUOTE123456),
(ART449211)-[:CONTAINS]->(QUOTE765980),
(ART449211)-[:CONTAINS]->(QUOTE987681),
(ART449211)-[:CONTAINS]->(QUOTE876982),
(ART449211)-[:CONTAINS]->(QUOTE654009),

(ART559233)-[:CONTAINS]->(QUOTE123456),
(ART559233)-[:CONTAINS]->(QUOTE765980),
(ART559233)-[:CONTAINS]->(QUOTE987681),
(ART559233)-[:CONTAINS]->(QUOTE876982),
(ART559233)-[:CONTAINS]->(QUOTE431110),

(ART765432)-[:CONTAINS]->(QUOTE123456),
(ART765432)-[:CONTAINS]->(QUOTE765980),
(ART765432)-[:CONTAINS]->(QUOTE987681),
(ART765432)-[:CONTAINS]->(QUOTE876982),
(ART765432)-[:CONTAINS]->(QUOTE565678),

(ART112244)-[:CONTAINS]->(QUOTE123456),
(ART112244)-[:CONTAINS]->(QUOTE765980),
(ART112244)-[:CONTAINS]->(QUOTE987681),
(ART112244)-[:CONTAINS]->(QUOTE876982),
(ART112244)-[:CONTAINS]->(QUOTE009876),

(ART908789)-[:CONTAINS]->(QUOTE987681),
(ART908789)-[:CONTAINS]->(QUOTE876982),
(ART908789)-[:CONTAINS]->(QUOTE888984),

(ART123321)-[:CONTAINS]->(QUOTE987681),
(ART123321)-[:CONTAINS]->(QUOTE876982),
(ART123321)-[:CONTAINS]->(QUOTE888984),

(ART887651)-[:CONTAINS]->(QUOTE987681),
(ART887651)-[:CONTAINS]->(QUOTE876982),
(ART887651)-[:CONTAINS]->(QUOTE888984),

(ART800704)-[:CONTAINS]->(QUOTE765984),
(ART800704)-[:CONTAINS]->(QUOTE436724),
(ART800704)-[:CONTAINS]->(QUOTE362984),

(ART600333)-[:CONTAINS]->(QUOTE765984),
(ART600333)-[:CONTAINS]->(QUOTE436724),
(ART600333)-[:CONTAINS]->(QUOTE362984);
需要下面这样的结果吗 基本上-需要提取所有3个引号集,然后找出它们一起出现在多少篇文章中,并按desc count对它们进行排序

输入请


谢谢

我想这就是你想要的:

MATCH (a:Article)-[:CONTAINS]->(q1:Quote),
      (a:Article)-[:CONTAINS]->(q2:Quote),
      (a:Article)-[:CONTAINS]->(q3:Quote) 
WHERE id(q1) < id(q2) AND id(q2) < id(q3) // avoid dups in different orders
RETURN q1.num, q2.num, q3.num, count(a) AS present_in 
ORDER BY present_in DESC

谢谢韦斯,这正是我想要的。还有idq1是什么意思?idq1q1:Quote,a:Article-[:CONTAINS]>q2:Quote,a:Article-[:CONTAINS]->问题3:如果idq1MATCH (a:Article)-[:CONTAINS]->(q1:Quote), (a:Article)-[:CONTAINS]->(q2:Quote), (a:Article)-[:CONTAINS]->(q3:Quote) WHERE id(q1) < id(q2) AND id(q2) < id(q3) // avoid dups in different orders RETURN q1.num, q2.num, q3.num, count(a) AS present_in ORDER BY present_in DESC