2015-02-06 90 views
1

我有一個movies.csv文件,每行有一個特徵向量(例如 - id |名稱| 0 | 1 | 1 | 0 | 0 | 0 | 1有2個名稱和特徵的功能id,用於流派分類的7個特徵)neo4j中循環數據值

我想要類Movies中的節點m與來自類流派的節點g具有關係[:HAS_GENRE]。爲此,我需要遍歷所有'|'分離的特點,只有真正的關係,如果值是1

從本質上講,我想有 -

x = a //where a is the index of the first genre feature 

while (x < lim) //lim is the last index of the feature vector 
{ 
if line[x] is 1: 
    (m{id:toInt(line[0]})-[:HAS_GENRE]->(g{id=line[x]}) 

} 

我該怎麼辦呢?

+0

我知道匹配和創建構造,只是沒有關於循環部分的想法。 – goelakash 2015-02-06 14:27:58

+0

你有一個.csv文件,其中有一個管道分隔的列? – 2015-02-07 01:27:07

+0

所有列都由管道分隔 – goelakash 2015-02-07 09:22:19

回答

0

試試這個

WITH ["Genre1","Genre2",...] as genres 
LOAD CSV FROM "file:movies.pdv" using fieldterminator "|" AS row 
MERGE (m:Movie {id:row[0]}) ON CREATE SET m.title = row[1] 
FOREACH (idx in filter(range(0,size(genres)-1) WHERE row[2+idx]="1")) | 
    MERGE (g:Genre {name:genres[idx]}) 
    CREATE (m)-[:HAS_GENRE]->(g) 
) 
  • 它加載作爲一個集合
  • 前兩個元素被用來創建影片
  • 然後通過過濾器的潛在指標range(0,size(genres)-1)的文件的每一行在輸入行中存在「1」,
  • 然後將得到的索引列表用於查找流派名稱或編號
  • 並連接電影與流派
+0

當我在[]中爲流派添加「匹配(g:流派)返回g」時,它不起作用。我想要動態檢索列表,我該怎麼做?我已經有一個(:流派)節點的列表。 – goelakash 2015-02-08 12:26:12