这里我为密钥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
&#39; WS`。为什么呢?
答案 0 :(得分:1)
您似乎需要使用.list()
来创建多值键(否则默认为单值键;请参阅docs)。
不幸的是,我不确定您是否可以在外部索引中使用多值键:
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]}