2013-10-20 8 views
13

जावा में neo4j एम्बेडेड डेटाबेस में, दो नोड्स के साथ एक दूसरे के साथ संबंध होने पर मुझे कैसे जांचना चाहिए?जावा में neo4j एम्बेडेड डेटाबेस में, दो नोड्स के साथ एक दूसरे के साथ संबंध होने पर मुझे कैसे जांचना चाहिए?

मुझे सिंटैक्स कृपया या एक ट्यूटोरियल लिंक चाहिए, मैंने neo4j वेबसाइट देखी है लेकिन इसे नहीं मिला।

धन्यवाद।

उत्तर

12

को देखते हुए दो नोड्स "nodeA" और "nodeB",

  1. , रिश्ते "rels" का संग्रह के माध्यम से

    rels = nodeA.getRelationships(); 
    
  2. पुनरावृति के लिए सभी रिश्तों "nodeA" से जुड़ी हो जाता है, प्रत्येक रिश्ते "रिले", परीक्षण करें कि अन्य अंत नोड नोडबी

    rel.getOtherNode(nodeA).equals(nodeB) 
    
  3. यदि उपरोक्त अभिव्यक्ति संबंधों में से किसी एक के लिए सच है, तो नोडा और नोडब कनेक्ट हैं।

यहाँ,

http://api.neo4j.org/current/

+2

मैं सिर्फ मैं जोड़ना होगा सोचा का आयोजन करेगा, "नोड" और "Relationshiip" के लिए जावा एपीआई है इस खोज को करने से पहले आपको 'नोडएए' और 'नोड बी' की किनारों पर विचार करना चाहिए, क्योंकि आप इसे नोड से शुरू कर सकते हैं। –

+2

यदि आपके पास संभावित रूप से हजारों रिश्ते हैं तो यह अच्छी तरह से काम नहीं करता है। – davedonohue

0
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 आपका जवाब

संबंधित मुद्दे