【发布时间】:2013-11-15 12:41:26
【问题描述】:
我正在尝试查找具有可选但特定节点/关系的节点之间的关系(neo4j 2.0 M6)。
在我的数据模型中,“基因”可以是“PARTOF”一个“组”。我在“基因”-“基因”、“基因”-“组”和“组”-“组”之间存在“交互”关系(模型图像中的红线)。
我想将其归结为“基因”之间的所有“交互”关系:直接(Gene-INTERACT-Gene) 和通过一两个“组”(Gene-PARTOF-Group-INTERACT-Gene)。
当然,使用多个 Cypher 查询很容易:
# direct INTERACT
MATCH (g1:Gene)-[r:INTERACT]-(g2:Gene) RETURN g1, g2
# INTERACT via one Group
MATCH (g1:Gene)-[:PARTOF]-(gr:Group)-[r:INTERACT]-(g2:Gene) RETURN g1, g2
# INTERACT via two Group
MATCH (g1:Gene)-[:PARTOF]-(gr1:Group)-[r:INTERACT]-(gr2:Group)-[:PARTOF]-(g2:Gene)
RETURN g1, g2
但是是否可以构建一个在路径中采用可选“组步骤”的 Cypher 查询?到目前为止,我只使用了可选关系和shortestPaths,但我不知道是否可以在两个基因之间过滤一两个可选节点。
【问题讨论】: