/ / साइफर (नियो 4j) - neo4j, साइफर का उपयोग करके आउटपुट के रूप में विशिष्ट पथ प्राप्त करें

साइफर (नियो 4j) - neo4j, साइफर का उपयोग करके आउटपुट के रूप में विशिष्ट पथ प्राप्त करें

जैसा कि नीचे दिखाया गया है मेरे पास एक ग्राफ नेटवर्क है

यहां छवि विवरण दर्ज करें

मैं चाहता हूं कि नोड 1 और नोड 4 के बीच सबसे लंबा रास्ता "केवल" प्राप्त करना है। मैंने निम्नानुसार प्रश्न लिखा है:

MATCH p = ((n {name: "1"})-[:Relation*..]-(n1{name: "4"}))
WITH max(length(p)) AS pathLength
MATCH p1 = ((n {name: "1"})-[:Relation*..]-(n1{name: "4"}))
WHERE length(p1) = pathLength
RETURN p1

हालांकि, क्वेरी नोड्स के बीच सभी रिश्तों को वापस लाती है (ऊपर की छवि वास्तव में क्वेरी का परिणाम है) जो पथ का हिस्सा हैं, क्या इससे बचने का कोई तरीका है?

Neo4j के लिए नया, किसी भी मदद की सराहना की जाएगी।

धन्यवाद

उत्तर:

उत्तर № 1 के लिए 1

आप इसका उपयोग कर रहे हैं pathLength के बीच सभी संभव पथों में से n तथा n1। ऑर्डर करने और सीमित करने का प्रयास करें pathLength:

MATCH p = ((n {name: "1"})-[:Relation*..]-(n1{name: "4"}))
WITH length(p) AS pathLength
ORDER BY pathLength DESC // greater path lengths first
LIMIT 1 // get only the greatest
MATCH p1 = ((n {name: "1"})-[:Relation*..]-(n1{name: "4"}))
WHERE length(p1) = pathLength
RETURN p1

संपादित करें:

इसके अलावा, जहां स्थिति में एक स्थिर मूल्य (3) प्रदान करने की कोशिश की है। कुछ भी बदलना प्रतीत नहीं होता था।

शायद विकल्प "परिणाम परिणाम नोड्स" का विकल्पआपका नियो 4 जे ब्राउज़र सक्षम है। जब यह विकल्प सक्षम होता है तो Neo4j ब्राउज़र ग्राफ़ विज़ुअलाइजेशन मोड में परिणामी नोड्स को जोड़ने का प्रयास करेगा। इसे अक्षम करने के लिए वांछित परिणाम प्राप्त करने के लिए आपको Neo4j ब्राउज़र सेटिंग्स के अनुभाग "ग्राफ़ विज़ुअलाइज़ेशन" पर जाना चाहिए और नीचे दी गई छवि में शो के रूप में "परिणाम परिणाम नोड्स" विकल्प को अनचेक करें:

ग्राफ विज़ुअलाइजेशन सेटिंग्स

"अतिरिक्त" संबंध केवल ग्राफ विज़ुअलाइजेशन मोड में दिखाए जाते हैं। यदि आप टेबल, टेक्स्ट या कोड में बदलते हैं तो ये रिश्ते नहीं दिखाए जाते हैं।