cypher と neo4j 2.0 を使用。
ノード ID の 2 つのセット (同じ長さ) と重みのセットが与えられた場合、対応するノード間の関係を作成し、重みをプロパティとして設定したいと思います。たとえば、次の 3 つのリストがあるとします。
node list 1: (101, 201, 301)
node list 2: (102, 202, 302)
weights: (0.1, 0.6, 0.25)
次の表現を作成したいと思います
101 - knows {w : .1} - 102
201 - knows {w : .6} - 202
301 - knows {w : .25} - 302
ただし、たとえば、 101 - knows - 302
これを行うには、パラメーターを繰り返し処理してから、個々のクエリを作成します。これをバッチ実行して、lsits をパラメーターとして渡し、
cypher
ノードとプロパティを順番に一致させる方法はありますか?
次の方法でパラメーターを使用するとうまくいくのではないかと一瞬考えましたが、代わりに (予想どおり) 関係のすべての順列を作成し、重みのリスト全体をプロパティとして各関係に割り当てます。
{
"query":
"START a1=node({starts}), a2=node({ends})
CREATE UNIQUE a1-[r:knows {w : {weights}}]-a2
RETURN type(r), r.w, a1.name, a2.name",
"params": {
"starts" : [101, 201, 301],
"ends" : [102, 202, 302],
"weights" : [0.1, 0.6, 0.25]
}
}