1

動作するネオグラフィーの例の単純なバリエーションでテストしています。フィルターは動作するはずですが、運がありません。position.lengthでフィルタリングでき、正常に機能しますが、ノードのプロパティに基づいてフィルタリングしようとしています。

これらのノードが与えられた場合:

node1 = Neography::Node.create("name" => "node1")
node2 = Neography::Node.create("name" => "node2")
person1 = Neography::Node.create("name" => "Person1", "role" => "author")
person2 = Neography::Node.create("name" => "Person2", "role" => "author")
person3 = Neography::Node.create("name" => "Person3", "role" => "editor")
Neography::Relationship.create(:user, node1, person1)
Neography::Relationship.create(:user, node2, person2)
Neography::Relationship.create(:user, node1, person3)
Neography::Relationship.create(:user, node2, person3)

「the_node」をperson1に設定して、person3を返すようにしようとしています。

the_node.both(:user).
    order("breadth first").
    uniqueness("node global").
    #filter("position.length() == 2;").
    filter("currentNode.getProperty('role') == 'editor';").
    depth(2).
    map{|n| n.name}.join(', ')

コメントアウトされたフィルターは、期待どおりにperson3を返します(第2レベルの関係)が、'role'プロパティに基づくフィルターはすべてをフィルター処理するように見えるため、結果は空になります。

どんな提案も素晴らしいでしょう。私は間違いなくneo4jとneographyに不慣れです。

4

1 に答える 1

0

トラバーサルエンドポイントの代わりに、サイファーを調べます。Neographyでサポートされているhttp://docs.neo4j.org/chunked/snapshot/cypher-query-lang.htmlを参照してください。

クエリは次のようになります

start user = node(1) 
match user-[:user]->person 
where person.role = "editor" 
return person.name

HTH

于 2012-04-13T21:17:32.663 に答える