簡體   English   中英

無法在Neo4j中創建導入csv的關系

[英]Unable to create relationships importing a csv in Neo4j

我無法在Neo4j中創建導入.csv文件的關系

我擁有的節點是醫療服務提供者和醫療條件

這種關系是提供者 - [條約] - >條件

這是我的提供者csv的一個子集:

Provider,ProviderID,Office,Street,City,State,Zip,Phone
Dr. Mxxxxi MD,1,The xxx Hospital,1xxx xxx Hwy,Ft Wright,KY,4xxxxx,(xxx) xxx-3304

這是我的條件csv的一個子集:

condition,conditionID
Acute Leukemia,1
Acute Lymphoid Leukemia,2
Acute Myeloid Leukemia,3
Adrenal Gland Cancer,4
....

這是我的關系csv的一個子集:

ProviderID,ConditionID
1,1
1,2
1,3
1,4
1,5
1,6
1,7
1,8
1,9
...

以下是import / create語句:

// Create providers
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:///providers.csv" AS row
CREATE (:Provider {provider: row.Provider, providerID: row.ProviderID, officeName: row.OfficeName, street:row.Street,  city:row.City, state:row.State,  zip:row.Zip,  phone: row.Phone});

添加了1個標簽,創建了1個節點,設置了7個屬性,語句在283毫秒內完成

// Create conditions
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:///conditions.csv" AS row
CREATE (:Condition {Condition: row.condition, ConditionID: 
row.conditionID});

添加了100個標簽,創建了100個節點,設置了200個屬性,語句在262毫秒內完成。

我創建了索引:

CREATE INDEX ON :Provider(providerID);
CREATE INDEX ON :Condition(conditionID);

這是導入/創建關系語句和結果:

USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:///ProviderConditionsTreated.csv" AS row
MATCH (p:Provider { providerID: row.ProviderID})
WITH p
MATCH (c:Condition { conditionID: p.ConditionID})
CREATE (p)-[t:TREATS]->(c);

(沒有變化,沒有記錄)

我也試過這個沒有記錄

MATCH (p:Provider { providerID: row.ProviderID})
MATCH (c:Condition { conditionID: row.ConditionID})
CREATE (p)-[t:TREATS]->(c);

(沒有變化,沒有記錄)

我看到導入查詢存在兩個問題:

  1. Cypher語言對標簽,類型和屬性名稱區分大小寫 在providers.csv文件中, ProviderID屬性以大寫字符開頭,但在conditions.csv文件中, conditionID屬性以小寫字母開頭。 使用LOAD CSV命令加載它們時,這些命令實際上已更改為providerIdConditionId 最好保持CSV文件和頂點屬性的一致性。

  2. 您不應該使用WITH p因為您將無法再訪問row變量。 這已在您上次查詢中修復。 但是,即使這樣也可以通過使用單個MATCH子句來簡化。

總之,以下查詢對我有用:

USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:///relations.csv" AS row
MATCH
  (p:Provider { providerID: row.ProviderID}),
  (c:Condition { ConditionID: row.ConditionID})
CREATE (p)-[t:TREATS]->(c);

創建了4個關系,在110毫秒后完成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM