Как проверить, связаны ли два узла друг с другом, в встроенной базе данных neo4j в java? Как проверить, связаны ли два узла друг с другом, в встроенной базе данных neo4j в java? Я хочу синтаксис, пожалуйста, или ссылку на учебник, я видел веб-сайт neo4j, но не нашел его. Спасибо. Ответ 1 Учитывая два узла "nodeA" и "nodeB", получает все отношения, связанные с "nodeA", rels = nodeA.getRelationships(); итерация через набор отношений rels, для каждой связи rel, проверьте, является ли другой конец node nodeB rel.getOtherNode(nodeA).equals(nodeB) если указанное выражение выполняется для одного из отношений, то nodeA и nodeB связаны. Вот java API для "Node" и "Relationshiip", http://api.neo4j.org/current/ Ответ 2 private boolean sharedRelationshipExists( Node nodeA, long nodeBId) { Iterator<Relationship> iterator = nodeA.getRelationships().iterator(); while ( iterator.hasNext() ) { if (iterator.next().getOtherNode( nodeA ).getId() == nodeBId) return true; } return false; } // in another part boolean sharedRelationshipBetweenAB; if ( nodeA.getDegree() < nodeB.getDegree() ) { sharedRelationshipBetweenAB = sharedRelationshipExists( nodeA, nodeB.getId() ); } else { sharedRelationshipBetweenAB = sharedRelationshipExists( nodeB, nodeA.getId() ); } логический sharedRelationshipBetweenAB будет содержать ваш ответ
Ответ 1 Учитывая два узла "nodeA" и "nodeB", получает все отношения, связанные с "nodeA", rels = nodeA.getRelationships(); итерация через набор отношений rels, для каждой связи rel, проверьте, является ли другой конец node nodeB rel.getOtherNode(nodeA).equals(nodeB) если указанное выражение выполняется для одного из отношений, то nodeA и nodeB связаны. Вот java API для "Node" и "Relationshiip", http://api.neo4j.org/current/
Ответ 2 private boolean sharedRelationshipExists( Node nodeA, long nodeBId) { Iterator<Relationship> iterator = nodeA.getRelationships().iterator(); while ( iterator.hasNext() ) { if (iterator.next().getOtherNode( nodeA ).getId() == nodeBId) return true; } return false; } // in another part boolean sharedRelationshipBetweenAB; if ( nodeA.getDegree() < nodeB.getDegree() ) { sharedRelationshipBetweenAB = sharedRelationshipExists( nodeA, nodeB.getId() ); } else { sharedRelationshipBetweenAB = sharedRelationshipExists( nodeB, nodeA.getId() ); } логический sharedRelationshipBetweenAB будет содержать ваш ответ