Значение нескольких ключей не печатается
Здесь я устанавливаю несколько значений для ключа city
Vertex v = g.addVertex(null);
TitanVertex v2=(TitanVertex)v;
v2.addProperty("city", "NY");
v2.addProperty("city", "WS");
v2.addProperty("city", "PER");
g.commit();
Здесь я индексирую
g.makeKey("city").dataType(String.class).indexed("search", Vertex.class).make();
Когда я делаю ниже
TitanVertex tv = (TitanVertex)vertex;
Iterator<TitanProperty> iterator = tv.getProperties("city").iterator();
while(iterator.hasNext())
{
TitanProperty next = iterator.next();
System.out.println(next.getValue());
}
Это только печать PER
но нет NY
"WS`. Зачем?
1 ответ
Похоже, вам нужно использовать .list()
создать ключ с несколькими значениями (в противном случае по умолчанию используется ключ с одним значением; см. документы).
К сожалению, я не уверен, что вы можете использовать многозначные ключи в вашем внешнем индексе:
gremlin> g.makeKey("city").list().dataType(String.class).indexed("search", Vertex.class).make();
Only standard index is allowed on list property keys
Хотя со стандартным индексом:
gremlin> g.makeKey("city").list().dataType(String.class).indexed("standard", Vertex.class).make();
==>city
gremlin> v = g.addVertex(null)
==>v[4080012]
gremlin> v.addProperty("city","NY")
==>e[2esPj-h7oE-h4][4080012-city->NY]
gremlin> v.addProperty("city","WS")
==>e[2esPl-h7oE-h4][4080012-city->WS]
gremlin> v.addProperty("city","PER")
==>e[2esPn-h7oE-h4][4080012-city->PER]
gremlin> g.commit()
==>null
gremlin> v.map
==>{city=[NY, WS, PER]}