我正在使用neo4j的应用程序。 我已经使用CSV文件在neo4j中导入了我的数据库并创建了节点和关系。我的数据库包含3列,Anumber,Bnumber和DateTime。该DB通过使用Neo4j的浏览器这些命令代表ANUMBER -> BNUMBER
与DATETIME
使用Dijkstra算法在每个节点上显示一次发现并找到neo4j中的最短路径
所以我已经创建的节点和关系的通话记录
LOAD CSV WITH HEADERS FROM "file:///2.csv" AS ROW
CREATE (a:ANUMBER {aNumber:ROW.aNumber})
CREATE (b:BNUMBER {bNumber:ROW.bNumber})
MERGE (a)-[:CALLED]->(b);
这成功创建两个节点,一个关系和2个属性键。
现在我面临两个问题。
第一个是当我询问有关单个节点它为每一个新出现圆形数据。我已经使用这个查询
MATCH p=(a:ANUMBER)-[r:CALLED]->(b:BNUMBER)
WHERE a.aNumber = "3217913664"
RETURN p
这导致了正确的反应,但它创造了新的圆圈3217913664和任何其他数之间每一种关系。请参阅附件图片。我需要为3217913664显示一个圆,并且所有边从单个圆出发并创建所需的圆和边。这个图像显示了32个节点的3217913664,但我只需要为预期的3217913664和其他节点显示一个节点。
第二个是我需要显示两个数字之间的所有最短路径。比方说
123 called 456,789,000,222
000 called 333,555,999
999 called 963
456 called 963
123 called 963
所以我需要找到123和963之间的所有最短路径,它们分别是:
123 -> 000 -> 999 -> 963
123 -> 456 -> 963
123 -> 963
任何想法,我怎么能解决这些问题,2。我已经使用GraphStream实现了这些场景,但我需要在neo4j中使用Cypher查询语言实现相同的用例
是的,我想'allShortestPath'。我试过这个,但它没有给出任何结果,可能是由于我的错误导入命令。我会尝试你的命令,看看会发生什么allShortestPath –
我已经运行此查询的最短路径匹配(a:ANUMBER {aNumber:“3217913664”}),(b:BNUMBER {bNumber:“3212862749”}), 路径=最短路径((a) - [:CALLED *] - (b)) RETURN path' –
但它在第一行给我**笛卡尔产品警告**并且**提供的模式在第二行无限制** 。任何想法如何解决此警告。结果良好而准确这两个警告 –