如何获取Titan DB版本1.0.0中的顶点或边元素的属性

时间:2015-10-11 13:47:32

标签: java titan

旧版 Titan DB(版本0.5.2) TitanVertex TitanEdge 实施 TitanElement 界面我用来检索元素属性值的方法.move { border:1px solid #000000; padding: 10px; transition: transform .2s ease; /* have noticed issue is in "transition" */ } .button.hover { color: red; } .angle { transform: translate(100px, 0); }。在新版本的Titan中删除了此方法(我使用的是1.0.0版)。我发现<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="move"> <button class="button">on click still red?</button> </div>代替这种方法做了同样的事情,但接收 PropertyKey 作为参数,而不是 String 作为键名。

仅使用属性键名作为String对象检索属性值/值的最佳方法是什么?

或者是否有简单的方法将PropertyKey对象从属性键名称作为String获取?

3 个答案:

答案 0 :(得分:2)

Titan 1.0基于TinkerPop 3.在Titan 1.0中,您会发现之前在Titan 0.5中调用的一些方法在TinkerPop接口中定义,而不是在Titan接口中定义。

查看com.thinkaurelius.titan.core.TitanVertex的Javadoc,您可以看到它扩展了org.apache.tinkerpop.gremlin.structure.Vertex http://thinkaurelius.github.io/titan/javadoc/1.0.0/com/thinkaurelius/titan/core/TitanVertex.html

您可以在VertexProperty property(String key) http://tinkerpop.incubator.apache.org/javadocs/3.0.1-incubating/full/org/apache/tinkerpop/gremlin/structure/Vertex.html#property-java.lang.String-

上找到方法org.apache.tinkerpop.gremlin.structure.Vertex

使用属性键检索顶点属性值的最佳方法如下:

gremlin> graph = TitanFactory.build().set('storage.backend','inmemory').open()
==>standardtitangraph[inmemory:[127.0.0.1]]
gremlin> g = graph.traversal()
==>graphtraversalsource[standardtitangraph[inmemory:[127.0.0.1]], standard]
gremlin> v = graph.addVertex('name', 'octopus')
==>v[4296]
gremlin> v.values('name')
==>octopus

您可以在此处了解有关TinkerPop3文档中顶点属性的更多信息http://tinkerpop.incubator.apache.org/docs/3.0.1-incubating/#vertex-properties

答案 1 :(得分:0)

我花了一些时间,找到了一些简单的问题解决方案(根据Jason Plurad的最新答案)。

查看com.thinkaurelius.titan.core.TitanElement的Javadoc,方法valueOrNull(PropertyKey key)接收属性键对象。获取此对象的最简单方法是使用getPropertyKey(String keyName) com.thinkaurelius.titan.core.TitanTransaction方法返回属性键(如果它存在于Titan架构中)。 http://thinkaurelius.github.io/titan/javadoc/1.0.0/com/thinkaurelius/titan/core/TitanTransaction.html

Java代码示例:

TitanTransaction tt = TitanGraph.newTransaction();
PropertyKey userNameKey = tt.getPropertyKey("userName");
TitanVertex v = tt.getVertex(someUserVertexId);
String userName = v.valueOrNull(userNameKey);

答案 2 :(得分:0)

你可以这样做

var = edge.inVertex().property("property").value();