Java 如何从Titan中提供的属性/关键点获取顶点

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();

下面是Titan文档中的代码,我想从图中检索一个顶点,给定一些指定的值/键/属性

我搜索了文档(我使用的是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");`
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)