一个方向上的最短路径" IN"或" OUT"在Neo4j

时间:2016-03-14 09:51:47

标签: search neo4j shortest-path

我有兴趣找到最短的路径,但只能在一个方向上找到。例如,我有以下图表:the graph

当我考虑" INCOMING"方向那么" A和D"之间的最短路径应该是" A-C-D"。如果我考虑" OUTGOING"最短路径的方向应为" A-F-E-D"

基于我的实施,只有" BOTH"方向可以考虑:

-0.002

当我用于Reldir =" IN"我有这个例外:

   PathExpander<Object> expander =   Traversal.pathExpanderForAllTypes(Reldir);  
   PathFinder<Path> finder=GraphAlgoFactory.shortestPath(expander,maxDepth, 1);        
   Path path = finder.findSinglePath("A","D");

有没有办法使用&#34; IN&#34;或&#34; OUT&#34; Neo4j的方向与OrientDB的情况一样?

2 个答案:

答案 0 :(得分:1)

尝试INCOMING而不是IN。 Source

答案 1 :(得分:0)

我已经实施了解决方案。但是,我不确定这是否是最好的方法:

  CREATE TABLE `User` (
`Userid` int(11) NOT NULL AUTO_INCREMENT,
`Username` VARCHAR(15) NOT NULL,
`Password` VARCHAR(15) NOT NULL,
PRIMARY KEY (Userid)
);

CREATE TABLE `Group` (
`GroupID` int(11) NOT NULL AUTO_INCREMENT,
`GroupName` VARCHAR(15) NOT NULL,
PRIMARY KEY (GroupID)
);

CREATE TABLE `EMPLOYEEGROUP` (
`EmployeeID` int(11) NOT NULL,
`AssignedGrp` int(11) NOT NULL,
CONSTRAINT EMPLOYEEGROUP_FK1 FOREIGN KEY (EmployeeID) REFERENCES User (Userid),
CONSTRAINT EMPLOYEEGROUP_FK2 FOREIGN KEY (AssignedGrp) REFERENCES `Group` (GroupID)
);

任何有效的解决方案?