USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:///dept_emp.csv" AS row
MATCH (emp_no:Employee {emp_no: row.emp_no})
MATCH (dept_no:departments {dept_no: row.dept_no})
MERGE(Employee)-[:belongs_to{from_date: row.from_date,to_date:
row.to_date}]->(departments);
このクエリを使用してプロパティとの関係を作成したい ノードの構造
従業員は
[
gender M
emp_no 10001
birth_date 1953-09-02
last_name Facello
hire_date 1986-06-26
first_name Georgi
]
ノード部門は
[
dept_no d009
dept_name Customer Service
]
ファイル dept_emp.csv の構造は
(
emp_no dept_name from_date to_date
)
IDE はエラーを表示せず、処理を開始するだけで 6 時間経過した後も処理を続けます。
どの部分が変数で、どの部分がノード ラベルであるか、マッチ構文について少し混乱しているかもしれません。
MATCH (emp_no:Employee {emp_no: row.emp_no})
上記の一致で:Employee
は、ノードのラベルです。emp_no
一致する :Employee ノードにバインドされた変数です。
クエリの後半では、次のようになります。
MERGE(Employee)-[:belongs_to{from_date: row.from_date,to_date:
row.to_date}]->(departments);
ここでの問題は、ということですEmployee
し、departments
あなたが以前にマッチしてきたものを参照していない、これはこれらの変数の最初の発生があり、そしてそれは、このMERGEが何をしているかオフにスローされます。現状では、すべてのノード間のすべての関係をチェックして (CSV のすべての行に対してこれを行って)、指定された日付プロパティとの :belongs_to 関係を探しています。
(必要に応じて Neo4j を強制終了して) データをクリーンアップして (必要な場合に備えて) クエリを停止し、再試行することをお勧めしますが、以前にバインドした変数で MERGE を試してください。
MERGE(emp_no)-[:belongs_to{from_date: row.from_date,to_date:
row.to_date}]->(dept_no);
:Employee(emp_no) と :departments(dept_no) にインデックスまたは一意の制約があることを確認して、高速マッチングを実行してください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加