2017-01-25 4 views
1

私はneos4jにcsvファイルをインポートしました。私は、各ノードの多数のプロパティ(すべての列)を定義しようとしていました。どのように私は各名前を入力することなくそれを行うことができますか?すべてを入力することなくノードの大きなプロパティセットを定義する方法は?

私はこれをしようとしている:

USING PERIODIC COMMIT 
load csv WITH headers from "file:///frozen_catalog.csv" AS line 

//Creating nodes for each product id with its properties 
CREATE (product:product{id : line.`o_prd`, 
Gross_Price_Average: TOINT(line.`Gross_Price_Average`), 
O_PRD_SPG: TOINT(line.`O_PRD_SPG`)}); 
+2

あなたの説明を編集して、あなたのインポート、あるいは少なくともあなたのインポートの代表バージョンを見てください。あなたが試したことをよく理解していないと助言をすることはできません。 – InverseFalcon

+0

実際、私は、コンテンツベースのフィルタリング推奨のためのコサイン類似性を実装しようとしています。 415個のユニークな製品を行として、次に77個の列を製品ノードのプロパティとして使用する予定のデータセットを取得しました。今、以下のクエリがあります。1.個々の列の名前をすべて書き留めてから、int/floatに手動で変換する必要がありますか? 2.後でドットプロダクトを計算する必要があるため、カテゴリ変数をダミー変数に変換するにはどうすればよいのですか?neo4jでどのように行うのですか? –

答えて

1

あなたがマップからプロパティを追加することができます。たとえば:

LOAD CSV WITH HEADERS FROM "http://data.neo4j.com/northwind/products.csv" AS row 
MERGE (P:Product {productID: row.productID}) 
SET P += row 

http://neo4j.com/docs/developer-manual/current/cypher/clauses/set/#set-adding-properties-from-maps

+0

私にこのリンクを案内してくれてありがとう。しかし、マニュアルによれば、私はまだすべてのパラメータの名前を書き留めなければならないでしょう。 –

0

LOADのCSVコマンドを使用すると、明示的に使って、他のすべてのフィールドを言及することを避けることができますが(明示的に行われなければならない特定のフィールド上のint型への自動型変換を実行することはできませんmap projection stdob - の提案で設定する前にラインデータを変換する機能。

Neo4jのimport toolを見てみると、タイプ変換を行うヘッダーにフィールドタイプを指定できるようになります。

つまり、77個の列は、個々のノードにすべて格納するための多くのデータです。あなたのデータをもう一度見て、それらのプロパティのいくつかが、自分の製品ノードとの関係で独自のラベルを持つノードとしてモデル化されているかどうかを調べることができます。これらのうちいくつかはカテゴリ属性であると述べました。カテゴリは、プロパティとしてではなくノードとして別々にモデル化するのに適しています。また、他のプロパティのいくつかはノードとしてもうまくいくでしょう。

+0

提案ありがとう:) –

関連する問題