之間沒有直接的關係,我有這3個節點(用戶,鳴叫,令牌),如:屬性從Neo4j的一個csvfile加入的關係時,有節點
:User with this property {userID}
:Token with this property {word}
:Tweet with this properties {tweetID, userID, tweetTxt}
,目前的關係如下:
(:Tweet)<-[:MADE]-(:User) (:Token)<-[:CONTAINS {tweet_score}]-(:Tweet)
現在考慮下面的CSV文件:
userToken.csv
_________________________________________
token,userID,score
that_danielle,15990804,0.111140564157
foodies,15990804,0.159946268074
soft-launched,15990804,0.132826927255
email,60730027,0.0561669544423
email,60730027,0.105124263028
email,60730027,0.0453705868273
email,60730027,0.0967876752689
email,32785000,0.101566813224
you,60730027,0.0835723672219
我需要爲「CONTAINS」關係添加一個名爲「user_score」的新屬性,並應從userToken.csv文件中檢索此分數。在下面的代碼中,我試圖這樣做:匹配「p」以包含用戶擁有的所有Token節點(不知道這是否真的起作用!),然後用這些「p」從csv中添加「user_score」文件以 「包含」 關係:
USING PERIODIC COMMIT 500
LOAD CSV WITH HEADERS FROM "file:///..../userToken.csv" AS csvrow
MATCH p=(u:User)-[*2]->(tok:Token)
with p
where u.userID = toInt(csvrow.userID)
FOREACH (n IN nodes(p)| SET n.user_score = toFloat(csvrow.score))
這將返回一個錯誤:
"csvrow not defined (line 6, column 52 (offset: 258))
"FOREACH (n IN nodes(p)| SET n.user_score = toFloat(csvrow.score))""
能否請你幫我解決這個問題?
PS:不知道我的問題的標題:未在WITH
通過/
感謝克里斯託弗,好一點forusing'WITH'然而,沒有任何疑問的了我是正確的結果。它找不到正確的:與用戶匹配的令牌。該場景如下:用戶創建一個':Tweet',這個':Tweet'是存儲在:Token(他們有:CONTAINS關係)中的一組單詞。現在我想從userToken.csv中添加'user_score',這意味着我爲每個在相關的':Tweet'中使用':Token'的':User'加權每個':Token'。這些查詢無法正確匹配':User'和':Token'。如果我只是可以在CSV文件中使用'tweetId',那將是一件非常容易的事情。 – Birish
你不能過濾令牌嗎?我編輯了 –
它工作了!最後一個查詢的劑量是我需要的。而你對'name'鍵的假設是正確的。謝謝Christophe! – Birish