में बाइनरी ऑब्जेक्ट्स संग्रहीत करना Neo4j मुझे बाइनरी ऑब्जेक्ट्स स्टोर करने की अनुमति नहीं देता है। क्या इसका मतलब है कि मुझे फाइल सिस्टम जैसे अन्य डेटा स्टोर के साथ Neo4j का उपयोग करना होगा। ओरेकल, आदि?Neo4j
Neo4j
उत्तर
डैनियल पहले से ही उत्तर दिया है कि नियो 4 जे में बाइनरी ऑब्जेक्ट्स स्टोर करना संभव है।
लेकिन मैं आपको सुझाव दूंगा कि ऐसा न करें। आप डेटाबेस में बाइनरी ऑब्जेक्ट्स के साथ कुछ भी दिलचस्प नहीं कर सकते हैं। आप उन्हें खोज नहीं सकते हैं। द्विआधारी वस्तुओं को संग्रहीत करके आप एकमात्र चीज हासिल करेंगे - अपने डेटाबेस का फ़ाइल आकार बढ़ाएं। आपको याद है, नियो 4 जे क्षैतिज स्केलेबल नहीं है। इसमें स्वचालित शेडिंग नहीं है। तो यदि आपका डीबी बहुत बड़ा हो जाता है, तो आप परेशानी में हैं। फाइल सिस्टम या बाहरी वितरित की-वैल्यू स्टोर जैसे दानाक, कैसंड्रा, हडूप इत्यादि में बाइनरी स्टोर करके, आप अपना डेटाबेस छोटा रखते हैं, जो प्रदर्शन, बैकअप और क्षैतिज स्केलिंग समस्याओं से बचने के लिए अच्छा है।
यदि आप यहां एपीआई देखते हैं: http://api.neo4j.org/1.2/org/neo4j/graphdb/PropertyContainer.html#setProperty(java.lang.String, java.lang.Object), आप देखते हैं कि बाइट एरे की अनुमति है।
बाइट-एरे का उपयोग करके आप अपनी बाइनरी ऑब्जेक्ट्स स्टोर कर सकते हैं। जब आप ओरेकल में बाइनरी ऑब्जेक्ट्स (जावा का उपयोग करके) स्टोर करते हैं, तो आप डेटा को बाइट [] के रूप में भी लोड करते हैं।
आप द्विआधारी वस्तुओं को बाइट [] के रूप में स्टोर कर सकते हैं या स्ट्रिंग में एन्कोड किया जा सकता है, लेकिन मैं अलग-अलग फ़ाइलों के रूप में बड़े (उदा।> 1,000 बाइट्स) ब्लॉब्स स्टोर करने की सलाह दूंगा, और केवल आपके डेटाबेस में फ़ाइल का संदर्भ रखूंगा।
हम इसे स्ट्रक्चर (http://structr.org) में भी करते हैं।
जैसा कि उल्लेख किया गया है यह बेहद हानिकारक है।
लेकिन यदि आप ऐसा करने के लिए तय है, तो आप इसे इस तरह सी # में कर सकता है:
using Neo4jClient;
using Neo4jClient.Cypher;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Neo4JBlob
{
class Program
{
static void Main(string[] args)
{
try
{
GraphClient client = new GraphClient(new Uri("http://localhost:7474/db/data"));
client.Connect();
byte[] image = File.ReadAllBytes("image.jpg");
BlobNode blob = new BlobNode(){Blob = image, name = "An image: " + DateTime.Now.ToShortDateString()};
client.Cypher.Create("(blob:Blob {category})").WithParam("category", blob).ExecuteWithoutResults();
var res = client.Cypher.Match("(b:Blob)").Return<BlobNode>(b => b.As<BlobNode>()).Limit(1).Results;
BlobNode BlobReturned = res.First();
File.WriteAllBytes("image_returned.jpg", BlobReturned.Blob);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.WriteLine(ex.StackTrace);
}
Console.ReadKey();
}
class BlobNode
{
public byte[] Blob
{
get;
set;
}
public string name
{
get;
set;
}
}
}
}
- 1. neo4j
- 2. neo4j
- 3. neo4j
- 4. neo4j
- 5. neo4j
- 6. Neo4J
- 7. Neo4j
- 8. Neo4j
- 9. neo4j
- 10. कैसे Neo4j
- 11. उपयोग neo4j
- 12. Neo4j बनाम ओपनलिंक Virtuoso
- 13. सब कुछ neo4j
- 14. Neo4j ग्राफ़ डीबी डेटा
- 15. Neo4j OutOfMemory समस्या
- 16. दो नोड्स neo4j
- 17. क्लाउड में Neo4j
- 18. neo4j grap db
- 19. neo4j: डेटाबेस कैसे स्विच करें?
- 20. neo4j और अधिकतम खुली फ़ाइलें
- 21. neo4j नोड्स में अद्वितीय मान
- 22. neo4j गतिशील रिश्ता प्रकार, enums
- 23. neo4j नामकरण सम्मेलन क्या हैं?
- 24. बस neo4j का उपयोग कर स्प्रिंग डेटा neo4j का उपयोग करने के क्या फायदे हैं?
- 25. neo4j दृढ़ता कैसे लागू की जाती है?
- 26. पासवर्ड सुरक्षा के साथ Neo4J webadmin
- 27. स्थानिक खोज के लिए neo4j बनाम mongodb
- 28. NEO4J किसी सरणी या बीजलेख क्वेरी
- 29. neo4j के लिए कौन सा रूबी रीस्ट एपीआई क्लाइंट?
- 30. वसंत डेटा NEO4J: संबंधों के पास शून्य मान
अच्छा अंतर्दृष्टि। चेतावनी के लिए धन्यवाद। –