2016-04-26 12 views
0

私はneo4jに文章グラフを持っています。:WORDというラベルを持つノードで開始して終了する複雑なクエリを実行する方法を知りたいと思います。cypherを使用した複雑なパスのクエリ

ポイントは、さまざまな長さを持ち、特定のプロパティを持つノードを経由するパスのみを返すようにしたいということです。

MATCH p=((p1:Word)-[r*0..4](***)-(p2:Word)) 
WHERE v:Variable {property = value} 
RETURN p1,p2,p AS Path, length(p) AS PathSize 
ORDER BY PathSize 

***:ここで私はVおよびフィルタVのは、特定のプロパティを持っている唯一のパスとして、パスの途中のノードに名前を付けたいと思い、私のような何かをしたいと思います。誰もそれを行う方法を知っていますか?

ありがとうございました!

答えて

1

[EDITED]

これはあなたが探しているものはおそらくです:

MATCH p=(p1:Word)-[*0..4]-(p2:Word) 
WHERE ALL(v IN NODES(p) WHERE v.property = value) 
RETURN p1, p2, p AS Path, LENGTH(p) AS PathSize 
ORDER BY PathSize; 
+0

はこの取得: 型の不一致:期待されるパスが、コレクション<関係>(行1、列61(相殺されました:60)) "一致するp =((p1:Word) - [r * 0..2] - (p2:Word))WHERE ALL(v IN NODES(r)WHERE v.pos =" NN ")パスの長さ(p)AS PathSize ORDER BY PathSize LIMIT 10 " \\\\「NODES(r)」の「r」を指す –

+0

別の解決策がありますか? ): –

+1

私は自分の答えを編集しました。 – cybersam