Tôi có hai loại nút sau:Nhận các nút mà không có mối quan hệ nhất định (cypher/neo4j)
c:City {name: 'blah'}
s:Course {title: 'whatever', city: 'New York'}
Nhìn tạo này:
(s)-[:offered_in]->(c)
Tôi đang cố gắng để có được tất cả các khóa học KHÔNG gắn liền với các thành phố và tạo mối quan hệ với thành phố (thành phố được tạo ra nếu không tồn tại). Tuy nhiên, vấn đề là tập dữ liệu của tôi là khoảng 5 triệu nút và bất kỳ truy vấn nào tôi thực hiện thời gian (trừ khi tôi làm tăng 10k).
... có ai có lời khuyên nào không?
EDIT:
Đây là một truy vấn cho công việc tôi đang chạy bây giờ (mà đã được thực hiện trong 10k khối (trong số hàng triệu) vì phải mất vài phút vì nó là tạo ra thành phố nếu doesn. 't tồn tại):
match (j:Job)
where not has(j.merged) and has(j.city)
WITH j
LIMIT 10000
MERGE (c:City {name: j.city})
WITH j, c
MERGE (j)-[:in]->(c)
SET j.merged = 1
return count(j)
(hiện tại không biết cách làm tốt bằng cách gắn thẻ với thuộc tính "đã hợp nhất" tùy chỉnh mà tôi đã có chỉ số trên)
Bạn có thể chia sẻ những gì bạn đang thử không? – JohnMark13
Tôi không nghĩ rằng điều này có thể được trả lời mà không có ngữ cảnh nhiều hơn (và phù hợp với câu hỏi của bạn để cập nhật của bạn, tôi giả định công việc == khóa học và trong == offer_in). Bạn có đang hoạt động trên dữ liệu hiện tại hay đây là một lần nhập hàng loạt không? Bạn có thể cho chúng tôi biết một chút về thiết lập hệ thống của bạn không? Thay vì 'hợp nhất', bạn có thể sử dụng WHERE NOT (j) - [: in] ->(). – JohnMark13
Bạn có thấy thời gian chờ thông qua giao diện trình duyệt không? –