Значение нескольких ключей не печатается

Здесь я устанавливаю несколько значений для ключа 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]}
Другие вопросы по тегам