Neo4j 1.8 এ সমস্ত নোড এবং সম্পর্ক মুছুন


92

আমি জানি এই প্রশ্নটি ইতিমধ্যে
আমার গবেষণার জন্য অনেক লোক জিজ্ঞাসা করেছিল, এখানে আগে আগে কিছু প্রশ্ন করা হয়েছিল

  1. Neo4j গ্রাফের সমস্ত সম্পর্ক কীভাবে মুছবেন?
  2. https://groups.google.com/forum/#!topic/neo4j/lgIaESPgUgE

তবে সর্বোপরি, এখনও আমাদের সমস্যাগুলি সমাধান করতে পারে না,
আমরা কেবল "সমস্ত" নোড এবং "সমস্ত" সম্পর্কগুলি মুছতে চাই

এখানে চিত্র বর্ণনা লিখুন

ধরা যাক "সমস্ত" মুছে ফেলা দেখতে দেখতে 0 টি নোড 0 টি বৈশিষ্ট্য এবং 0 টি সম্পর্ক রয়েছে

ফোরামের প্রস্তাবিত "ALL" মুছে ফেলা কার্যকর করার পরে এটিই আমার নেওয়া স্ক্রিনশট

আমার প্রশ্নটি এখনও একই, কীভাবে নও 4 জে সমস্ত নোড এবং সমস্ত সম্পর্ক মুছবেন

উত্তর:


248

২.৩.০ এবং ৩.৩.০ পর্যন্ত

MATCH (n)
DETACH DELETE n

ডকস

প্রাক 2.3.0

MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r

ডকস


4
Neo4j ডক্সে এই নমুনাটি যদিও বলেছেন: "এই কোয়েরিটি প্রচুর পরিমাণে ডেটা মুছার জন্য নয়, তবে ছোট উদাহরণের ডেটা সেটগুলির সাথে চারপাশে খেললে দুর্দান্ত nice" যদি ম্যাচ () - [r] - () মুছে ফেলা ভাল হয় এবং তারপরে
ম্যাচটি

4
@ জর্জিবারবিলিস, বিপুল পরিমাণে ডেটা ব্যবহারের জন্য একাধিক লেনদেনের মাধ্যমে অপারেশনটি ভেঙে ফেলতে হবে এবং পুনরায় চেষ্টা করার পদ্ধতিগুলি প্রয়োগ করতে হবে।
বব বি

4
পুনরায় চেষ্টা করা দরকার কিনা তা নিশ্চিত নন, তবে এটি করার পুনরাবৃত্তিমূলক উপায়ে স্টেকনফ্লো / প্রশ্নগুলি / 29711757/… এ স্টিফান আরম্ব্রাস্টারের জবাব দেখুন (আমি আমার ব্লগ পোস্টের লিঙ্কের শেষে এটিরও উল্লেখ করেছি যা আমার পৃথক উত্তর রয়েছে)
জর্জ বীরবিলিস

২.৩ উত্তর-ক্যোয়ারী আমার পক্ষে কাজ করে না। @ জর্জিবারবিলিসের পরামর্শ রয়েছে।
aliteralmind

@aliteralmind থেকে বিচার neo4j.com/docs/2.3.0/query-delete.html সম্ভবত ইস্যু যে পরে) একটি newline প্রয়োজন বা অন্তত একটি স্পেস গৃহস্থালির কাজ, যেহেতু বর্তমানে লিখেছেন ...) আলাদা যা দেখে মনে হচ্ছে কি টাইপো (এবং সম্ভবত একই লাইনে আবিষ্কার মুছে ফেলতে, তবে এটি প্রয়োজনীয় কিনা তা নিশ্চিত নন)। নিবন্ধটি নোট করুন এখনও বলেছে "এই ক্যোয়ারী বিপুল পরিমাণে ডেটা মুছে ফেলার জন্য নয়, ছোট উদাহরণস্বরূপ ডেটা সেটগুলির সাথে ঘুরে দেখার সময় দুর্দান্ত।"
জর্জ বীরবিলিস

6

আপনি সম্ভবত এটি সঠিকভাবে করছেন, কেবলমাত্র ড্যাশবোর্ড নেওয়া উচ্চতর আইডি দেখায়, এবং এইভাবে "সক্রিয়" নোডের সংখ্যা, সম্পর্ক, যদিও কিছুই নেই। এটা ঠিক তথ্যপূর্ণ।

আপনার খালি গ্রাফ রয়েছে তা নিশ্চিত হতে, এই কমান্ডটি চালান:

START n=node(*) return count(n);
START r=rel(*) return count(r);

যদি উভয়ই আপনাকে 0 দেয় তবে আপনার মোছা সফল ছিল।


হ্যাঁ, এটি সত্য তবে ড্যাশবোর্ড উচ্চতর বা সর্বোচ্চ আইডি না দেখায় না
হুয়ে টান

হ্যাঁ, তারা এটিকেই এইভাবে প্রোগ্রাম করেছে - যেহেতু যখন আপনার কাছে নোনের বিলিওনের একটি ক্লাস্টার থাকে তখন আপনি সেগুলি ম্যানুয়ালি গণনা করতে চান না। তবে কোথাও আমি কাউকে আরও গভীরতর দিকে যেতে এবং কোনও ধরণের জাভাস্ক্রিপ্ট ফিক্স তৈরি করতে দেখেছি, যদি আপনি ভাগ্যবান হন তবে আপনি পোস্টটি গুগল করবেন।
উলকাস

5

একটি বড় ডাটাবেসের জন্য আপনাকে ডিস্ক থেকে ডাটাবেসটি সরিয়ে ফেলতে হবে (প্রথমে আমার ধারণা অনুযায়ী ইঞ্জিনটি বন্ধ করার পরে) বা সাইফারে এমন ব্যবহার করা উচিত:

MATCH (n)
OPTIONAL MATCH (n)-[r]-()
WITH n,r LIMIT 50000
DELETE n,r
RETURN count(n) as deletedNodesCount

দেখতে https://zoomicon.wordpress.com/2015/04/18/howto-delete-all-nodes-and-relationships-from-neo4j-graph-database/ আরো কিছু তথ্য আমি বিভিন্ন উত্তর থেকে এই জড়ো করেছি জন্য


3

Neo4j এর সাথে সম্পর্কযুক্ত নোডগুলি মুছতে পারে না। নোডগুলি মুছতে পারার আগে আপনাকে সম্পর্কগুলি মুছতে হবে।

তবে, একটি সহজ চিপারের সাথে "সমস্ত" নোড এবং "সমস্ত" সম্পর্কগুলি মুছার সহজ উপায়। এই কোড:

ম্যাচ (এন) সনাক্তকরণ মোছা এন

-> ডেলাচ ডিলিট ম্যাচের মাধ্যমে নোড এবং সম্পর্কগুলির সমস্ত সরিয়ে ফেলবে


0

যদি নোডের নাম উদাহরণস্বরূপ: abcd হয় তবে নীচের কোয়েরিটি কাজ করবে:

MATCH (n:abcd)
DETACH DELETE n

এটি কেবল "abcd" লেবেলযুক্ত নোড এবং এর সমস্ত সম্পর্ক-জাহাজ মুছে ফেলবে।



আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.