Почему я не могу установить идентификатор для новой вершины, используя Gremlin в Java?

Я использую Gremlin с Java и графиком Neo4j. Я создаю 3 новые вершины и пытаюсь установить их идентификаторы на 1,2,3, но это не работает, что я делаю неправильно?

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

Почему это? Как я могу установить идентификаторы на 1,2,3? Также я могу вместо этого установить идентификаторы в строки?

Спасибо!


person user1056805    schedule 25.04.2012    source источник
comment
Я начинаю с запуска g.clear(), поэтому я знаю, что для начала имею дело с пустым графом.   -  person user1056805    schedule 25.04.2012


Ответы (1)


Neo4j присваивает вам идентификаторы новых данных, вы не можете их установить, за исключением случаев, когда вы используете утилиту BatchInserter. Гремлин молча игнорирует ваши удостоверения личности.

person Peter Neubauer    schedule 26.04.2012
comment
Ок интересно. Итак, если я хочу присвоить узлу идентификатор, я могу установить его как свойство, но как тогда мне эффективно искать узел, связанный с этим идентификатором? Есть ли лучший способ, чем получить все узлы в графе, а затем отфильтровать по идентификатору свойства? - person user1056805; 26.04.2012
comment
Да, вы можете индексировать это свойство и искать его, см. docs.neo4j.org/chunked. /моментальный снимок/indexing.html - person Peter Neubauer; 30.04.2012