2016-11-17 5 views
0

この質問は何度も尋ねられましたが、回答が私の問題を解決していないことを知っています。 ラベルTelephoneNumberのすべてのノードとその関係(何百万)を削除します。 私が最初に関係をこのように削除しようとしている:Neo4jラベル内のすべてのノードとそれらの関係を削除します

MATCH (:Person)-[r:HAS_TELEPHONE_NUMBER]->(:TelephoneNumber) 
DELETE r 

しかし、一定の時間後、私はエラーGC overhead limit exceededを取得します。私はこのようなクエリを制限しようとしました:

MATCH (:Person)-[r:HAS_TELEPHONE_NUMBER]->(:TelephoneNumber) 
WITH r LIMIT 100 
DELETE r 

私は同じエラーが発生します。 私は別の方法を試してみました:

MATCH (t:TelephoneNumber) OPTIONAL MATCH (t)-[r]-() 
DELETE t,r 

しかし、私は再び同じエラーを取得します。 ガベージコレクタのオーバーヘッド制限を超えないで、ラベル内のすべてのノードとその関係を削除するにはどうすればよいですか?

答えて

0

APOC手順apoc.periodic.commit()を利用したい場合があります。また、ノードを削除したいので、DETACH DELETEが役立ちます。これは、ノードからすべてのリレーションシップを削除し、ノード自体を削除するためです。

使い方の例は次のようになります。

call apoc.periodic.commit(" 
match (tel:TelephoneNumber) 
with tel limit {limit} 
detach delete tel 
return count(*) 
",{limit:10000}) 

あなたは、必要に応じてバッチサイズの制限を調整することができますが、10000は、通常動作します。

+0

これは私の問題を解決した、ありがとう:) – Porjaz

関連する問題