我正在将一个密码查询解析为.gexf(xml)文件。在Neo4j admin gui中输入此查询将返回所有节点及其互连关系(所有b节点之间的关系)
START a = node(52681)MATCH(a) - [r] - (b)RETURN a,r,b
neo4j webgui似乎使它自己的查询,因为它绘制了b节点之间的所有关系,而不仅仅是a和b节点之间的关系。 JSON响应不包含我可以使用b节点之间的关系解析xml文件的数据。
到目前为止,我已通过对每个b节点进行单独查询来解决此问题:
MATCH(a) - [r] - (b)WHERE id(a)= 52681 AND id(b)= 12345
但这看起来并不是很好的设计......我想在一个查询中完成这项工作。
另外,我倾向于过于复杂化。
答案 0 :(得分:0)
我认为这不是一种简单有效的方法。
考虑到每对节点之间的路径大小可能是变化的,因此像(a) - [r] - (b)这样的东西只能得到你想要的结果,如果a和b都在一度之外
然而,如果他们只有一度的距离(假设没有自我循环,这很容易就可以照顾),像
MATCH (a)-[r]-(b) RETURN a, r, b
......虽然处于一种非常低效的方式,但很可能会成功。但是,如果a和b之间的路径是> 1级深,显然不会起作用。
在这种情况下,这样的事情可能会起作用,但又是可怕的:
MATCH (a)-[r:*]-(b) RETURN a, r, b
...但如果您的路径深度超过几个级别,那么......哎哟。
当您开始询问图表中的问题时,该图表会跨越整个图表并需要处理/遍历整个图表,您提出的问题类型开始有点夸张。
所以,很可能,你提出的解决方案可能是真正解决这个问题的唯一方法。
那就是说,我很想知道是否有其他人对此有不同看法。
HTH,如果只是一点点。