2012-04-25 1 views
2

私はGremlinをJavaとNeo4jグラフで使用しています。 3つの新しい頂点を作成し、そのIDを1,2,3に設定しようとしましたが、動作していないようですが、何が間違っていますか?JavaでGremlinを使用して新しい頂点のIdを設定できないのはなぜですか?

Vertex v1 = g.addVertex(1); 
v1.setProperty("name","jim"); 
Vertex v2 = g.addVertex(2); 
v2.setProperty("name","bob"); 
Vertex v3 = g.addVertex(3); 
v3.setProperty("name","fred"); 

//iterate through the vertices and get their id's (shouldn't they be 1,2, and 3 ?? 

for (Vertex V:GVs) 
    System.out.println(V.getId()); 

リターン:

15 
16 
17 

これはなぜですか?どのようにIDを1,2,3に設定できますか?代わりにIdsを文字列に設定することもできますか?

ありがとうございます!

+0

g.clear()を実行することから始めます。最初は空のグラフを扱っています。 – user1056805

答えて

3

Neo4jは新しいデータのIDを割り当てていますが、BatchInserterユーティリティを使用する場合を除いては設定できません。 GremlinはあなたのIDを黙って無視しています。

+0

ああ、面白いです。したがって、ノードにIDを割り当てたい場合、それをプロパティとして設定できますが、そのIDに関連付けられたノードを効率的に検索するにはどうすればよいでしょうか?グラフのすべてのノードを取得し、プロパティIDでフィルタリングするよりも良い方法はありますか? – user1056805

+0

はい、そのプロパティのインデックスを作成してルックアップすることができます。http://docs.neo4j.org/chunked/snapshot/indexing.htmlを参照してください。 –

関連する問題