我正在关注Titan文档中的代码GraphOfTheGodsFactory source code我想从图中检索一个顶点,给定一些指定的值/键/属性。
我搜索了文档(我正在使用Titan 0.5.2),并尝试使用不同的函数,它们在执行时提供null。
我尝试的事情,
`TitanManagement mgmt = graph.getManagementSystem();
final PropertyKey userid = mgmt.makePropertyKey("userid").dataType(Integer.class).make();
TitanGraphIndex namei = mgmt.buildIndex("userid",Vertex.class).addKey(userid).unique().buildCompositeIndex();
TitanTransaction tx = graph.newTransaction();
Vertex ver1 = tx.addVertexWithLabel("user");
ver1.setProperty("userid", "2");
ver1.setProperty("username", "abc");
Vertex found = graph.getVertex("2");`
found返回null。
请帮忙!
答案 0 :(得分:4)
您无法通过这种方式找到Vertex
:
Vertex found = graph.getVertex("2");
该方法通过id查找顶点,但图中没有顶点,其id为" 2"这是一个字符串。现在,因为您有ver1
,所以您确实知道Vertex
的实际ID,以便您可以这样做:
Vertex found = graph.getVertex(ver1.getId());
通常情况下,您并不总是拥有该标识符,因此您希望通过您的域数据和您创建的索引来查找。在这种情况下,您可以:
Vertex found = graph.getVertices("userid","2").next();
这将对您的userid
媒体资源进行索引查找。由于这实际上会返回Iterator
,因此您必须next()
关闭结果。显然,在这种情况下,这只返回一个结果,所以不用担心Iterator
中的任何其他内容,但你应该在某些实际代码中以某种方式解释这一点。