我有一組節點使用file_A創建,其中包含與每個節點的'id'列。它一直使用這個暗號查詢(在Java中)創建:Neo4j Cypher - 添加屬性與加載CSV
USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM 'file:file_A' AS line FIELDTERMINATOR '\t'
CREATE (c:Node {nodeId:line.id})
現在我還有一個文件(FILE_B),其中包含四列:ID,描述,PROP2和prop3。我需要爲以前創建的每個節點分配一個描述(屬性'nodeDesc')。這些描述將從file_B的「描述」列中讀取。此外,要將此值賦予節點的'nodoDesc'屬性,'prop2'和'prop3'必須都等於'1'。爲了這個目的,我用這個暗號查詢:
USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM 'file:file_B' AS line FIELDTERMINATOR '\t'
MATCH (c:Node)
WHERE c.nodeId=line.id AND line.prop2='1' AND line.prop3='1'
SET c.nodeDesc = line.description
FILE_B包含每個節點的一些描述,但其中只有一個既有「PROP2」和「prop3」等於「1」。這就是我想要分配給節點屬性的那個。
執行前一個查詢後,我得到的問題是一些節點沒有描述。在執行了幾次測試之後,我已經驗證它不會執行'nodeId'的列'id'爲file_B的MATCH,但是在該列中它是'nodeId',並且'prop2'和' prop3'等於1'。
注:FILE_A有400.000行aprox的,和FILE_B有1.300.000行aprox的。
謝謝。
你好,謝謝你的回答。值都是字符串。並沒有尾隨或前面的空間。事實上,如果我手動刪除file_B的所有行(除了那些不匹配的行之外),那麼如果我執行de-cypher查詢(第二個),它就會匹配。 – Vicente
如果我將其中一個未匹配並粘貼的行作爲file_B上行的第一個位置,它也會匹配。奇怪的行爲... – Vicente