2016-08-14 20 views
0

私がやろうとしているのは、内部のツリーデータ構造を持つデータセットをCSVからneo4jにインポートすることです。ノードは親ノードと深度レベル(最大6)とともにツリーに格納されます。だから私はCASEを使用して深さレベルをチェックしてみてから、このような親(テスト目的のために、これまでちょうど1レベルのノードを作成する)にノードを追加します。neo4j:条件付きでCSVを正しく読み込む方法は?

export FILEPATH=file:///Example.csv 

CREATE CONSTRAINT ON (n:Node) ASSERT n.id IS UNIQUE; 

USING PERIODIC COMMIT 500 
LOAD CSV WITH HEADERS 
FROM {FILEPATH} AS line 
WITH DISTINCT line, 
line.`Level` AS level, 
line.`ParentCodeID_Cal` AS parentCode, 
line.`CodeSet` AS codeSet, 
line.`Category` AS nodeCategory, 
line.`Type` AS nodeType, 
line.`L1code` AS l1Code, line.`L1Description` AS l1Description, line.`L1Name` AS l1Name, line.`L1NameAb` AS l1NameAb, 
line.`L2code` AS l2Code, line.`L2Description` AS l2Description, line.`L2Name` AS l2Name, line.`L2NameAb` AS l2NameAb, 
line.`L3code` AS l3Code, line.`L3Description` AS l3Description, line.`L3Name` AS l3Name, line.`L3NameAb` AS l3NameAb, 
line.`L1code` AS l4Code, line.`L4Description` AS l4Description, line.`L4Name` AS l4Name, line.`L4NameAb` AS l4NameAb, 
line.`L1code` AS l5Code, line.`L5Description` AS l5Description, line.`L5Name` AS l5Name, line.`L5NameAb` AS l5NameAb, 
line.`L1code` AS l6Code, line.`L6Description` AS l6Description, line.`L6Name` AS l6Name, line.`L6NameAb` AS l6NameAb, 
codeSet + parentCode AS nodeId 
CASE line.`Level` 
    WHEN '1' THEN CREATE (n0:Node{id:nodeId, description:l1Description, name:l1Name, nameAb:l1NameAb, category:nodeCategory, type:nodeType}) 
    ELSE 
END; 

しかし、私はこの結果を得る:

警告:無効な入力 'S':期待される 'L/L'(行17、列3(オフセット: 982)) "CASEレベル"^

私は、間違いがあると承知しています構文。

私はneo4j 3.0.4 & Windows 10を使用しています(neo4jシェルを使用して、それを実行していますD:\Program Files\Neo4j CE 3.0.4\bin>java -classpath neo4j-desktop-3.0.4.jar org.neo4j.shell.StartClient)。

答えて

1

構文エラーがいくつかあります。たとえば、CASE句にはCREATE句を含めることはできません。

いずれにしても、Cypherを大幅に簡略化できるはずです。たとえば、これはあなたのニーズに合っているかもしれません:

USING PERIODIC COMMIT 500 
LOAD CSV WITH HEADERS 
FROM {FILEPATH} AS line 
WITH DISTINCT line, ('l' + line.Level) AS prefix 
CREATE (:Node{ 
    id: line.CodeSet + line.ParentCodeID_Cal, 
    description: line[prefix + 'Description'], 
    name: line[prefix + 'Name'], 
    nameAb: line[prefix + 'NameAb'], 
    category: line.Category, 
    type: line.Type}) 
関連する問題