Java 如何从Titan中提供的属性/关键点获取顶点
下面是Titan文档中的代码,我想从图中检索一个顶点,给定一些指定的值/键/属性 我搜索了文档(我使用的是Titan 0.5.2),并尝试使用不同的函数,它们在执行时提供null 我试过的东西Java 如何从Titan中提供的属性/关键点获取顶点,java,titan,Java,Titan,下面是Titan文档中的代码,我想从图中检索一个顶点,给定一些指定的值/键/属性 我搜索了文档(我使用的是Titan 0.5.2),并尝试使用不同的函数,它们在执行时提供null 我试过的东西 `TitanManagement mgmt = graph.getManagementSystem(); final PropertyKey userid = mgmt.makePropertyKey("userid").dataType(Integer.class).make();
`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");`
find返回null
请帮忙 用这种方法找不到
顶点
:
Vertex found = graph.getVertex("2");
该方法按id查找顶点,但图中没有id为“2”的顶点是字符串。现在,由于您有ver1
,您确实知道该顶点的实际id,因此可以执行以下操作:
Vertex found = graph.getVertex(ver1.getId());
通常,您并不总是具有该标识符,因此您希望通过域数据和您创建的索引查找内容。在这种情况下,您可以:
Vertex found = graph.getVertices("userid","2").next();
这将对您的userid
属性执行索引查找。因为这实际上返回了一个迭代器
,所以您必须关闭结果。显然,在这种情况下,这只返回一个结果,因此不必担心迭代器
中的其他任何内容,但您可能应该在某些实际代码中以某种方式对此进行解释。您无法通过这种方式找到顶点
:
Vertex found = graph.getVertex("2");
该方法按id查找顶点,但图中没有id为“2”的顶点是字符串。现在,由于您有ver1
,您确实知道该顶点的实际id,因此可以执行以下操作:
Vertex found = graph.getVertex(ver1.getId());
通常,您并不总是具有该标识符,因此您希望通过域数据和您创建的索引查找内容。在这种情况下,您可以:
Vertex found = graph.getVertices("userid","2").next();
这将对您的userid
属性执行索引查找。因为这实际上返回了一个迭代器
,所以您必须关闭结果。显然,在这种情况下,这只返回一个结果,因此不必担心迭代器中的其他任何内容,但您可能应该在一些实际代码中以某种方式对此进行解释。当您返回null时,您得到的完整堆栈跟踪是什么?没有例外。如果我打印find的值,它将打印null<代码>系统输出打印项次(已找到)
->null,而如果我打印ver1的值,System.out.println(ver1)代码>它打印v[256]返回null时得到的完整堆栈跟踪是什么?没有例外。如果我打印find的值,它将打印null<代码>系统输出打印项次(已找到)
->null,而如果我打印ver1的值,System.out.println(ver1)代码>它为Tittan1.0打印v[256],它图形顶点(userId)代码>用于Tittan1.0IT图形顶点(用户ID)代码>