2

私は neo4j に慣れていないので、助けていただければ幸いです。

プロパティ「Color」と2つの関係タイプ「Previous」と「Next」を持つノードを持つneo4jデータベースがあります。Blue、Red、Yellow など、通過する順序でノード プロパティを含む ArrayList があります。

グラフをトラバースして正確なパス Node(Color:Blue) --> Node(Color:Red) --> Node(Color:Yellow) の間にノードがなく、タイプが「Next」のすべての関係があるかどうかを確認するにはどうすればよいですか?データベースに存在しますか?

Java アプリケーションに埋め込まれた neo4j を使用しています。

4

1 に答える 1

4

入ってくる NEXT は「前の」ものと見なすことができるため、おそらくそれぞれの間に NEXT 関係があれば十分です。

そして、色にインデックスを付けてから、最初のノード(この場合は「青」)からトラバースを開始し、トラバーサーを次のようにする必要があると思います。

String[] colors = new String[] { "青", "赤", "黄" };
ノード開始 = db.index().forNodes( "colors" ).get( "color", colors[0] ).getSingle();
Traversal.description().uniqueness( Uniqueness.RELATIONSHIP_GLOBAL ).breadthFirst().relationships( Types.NEXT, Direction.OUTGOING ).evaluator( new Evaluator()
{
    @オーバーライド
    public Evaluation evaluate( パス パス )
    {
        String currentColor = (String) path.endNode().getProperty( "color" );
        boolean endOfTheLine = path.length()+1 >= colors.length;
        return currentColor.equals( 色[パス.長さ()] ) ?
                Evaluation.of( endOfTheLine, !endOfTheLine ) : Evaluation.EXCLUDE_AND_PRUNE;
    }
トラバース(開始)

たった今あなたのドメインをハッキングしましたが、そのトラバーサーはうまく機能しています!

于 2012-04-19T09:47:47.110 に答える