Graph Neo4j-如何在我的查询中包括开始节点?

Graph Neo4j-如何在我的查询中包括开始节点?,graph,neo4j,cypher,Graph,Neo4j,Cypher,我正在尝试为图书馆系统构建一个推荐引擎 这是我的数据库模式: 我的出发点是贷款卡。然后,流程应该是这样的:获取所有副本->获取材料->获取材料的所有副本(包括原件)->从副本获取借出卡->获取所有借出副本->返回副本的材料名称+聚合计数,以指示推荐的强度 到目前为止,我的最佳尝试产生了以下查询: MATCH (L:LoanerCard {Barcode:"10007"})-[:LOANED]->(myLoans)-[:COPY_OF]- (masterMaterial), (maste

我正在尝试为图书馆系统构建一个推荐引擎

这是我的数据库模式:

我的出发点是贷款卡。然后,流程应该是这样的:获取所有副本->获取材料->获取材料的所有副本(包括原件)->从副本获取借出卡->获取所有借出副本->返回副本的材料名称+聚合计数,以指示推荐的强度

到目前为止,我的最佳尝试产生了以下查询:

MATCH (L:LoanerCard {Barcode:"10007"})-[:LOANED]->(myLoans)-[:COPY_OF]- 
(masterMaterial),
(masterMaterial)<-[:COPY_OF]-(allCopies),
(allCopies)<-[:LOANED]-(coLoaners),
(coLoaners)-[r:LOANED]->(theirCopies),
(theirCopies)-[:COPY_OF]-(materials)
RETURN materials.Title as Recommended, count(*) as Strength ORDER BY Strength DESC
MATCH(L:LoanerCard{Barcode:“10007”})-[:LOANED]->(myLoans)-[:COPY\u OF]-
(母材),

(主材料)A
MATCH
子句自动筛选出重复的关系。因此,为了两次遍历相同的关系,需要将
MATCH
子句一分为二

试试这个:

MATCH (:LoanerCard {Barcode:"10007"})-[:LOANED]->()-[:COPY_OF]-(masterMaterial)
MATCH (masterMaterial)<-[:COPY_OF]-()<-[:LOANED]-()-[:LOANED]->()-[:COPY_OF]-(materials)
RETURN materials.Title as Recommended, count(*) as Strength ORDER BY Strength DESC
匹配(:借出卡{条形码:“10007”})-[:借出]->()-[:复制]-(母版)

MATCH(masterMaterial)感谢它按预期工作!我可以通过定义“start”节点实现同样的效果吗?
start
子句已被弃用,在这种情况下对您没有任何帮助。