使用Orientdb 3和tinkerpop 3确定两个顶点是否与边连接

使用Orientdb 3和tinkerpop 3确定两个顶点是否与边连接,orientdb,tinkerpop,orientdb-etl,Orientdb,Tinkerpop,Orientdb Etl,我一直在查阅文档。我只是想找到一个简单的例子,来识别标题中提到的两个顶点是否相互连接。这适用于使用tinkerpop API蓝图2.6的OrientDB 3。 前任: 顶点v1; 顶点v2 boolean connected = false; connected = <somefunction returns true/false if v1 and v2 connected by an edge>; boolean connected=false; 连通=; 如果有人看到过类

我一直在查阅文档。我只是想找到一个简单的例子,来识别标题中提到的两个顶点是否相互连接。这适用于使用tinkerpop API蓝图2.6的OrientDB 3。 前任: 顶点v1; 顶点v2

boolean connected = false;

connected = <somefunction returns true/false if v1 and v2 connected by an edge>;
boolean connected=false;
连通=;
如果有人看到过类似的情况,可以举个例子吗?

试试这个:

String db_name = "dbname";
String path = "remote:localhost/" + db_name;

OrientDB orientDB = new OrientDB("remote:localhost", "username", "password", OrientDBConfig.defaultConfig());

try(ODatabaseSession db = orientDB.open(db_name,"username","password")) 
{
    ORID theEdge = new ORecordId("edge_rid");
    OEdge e = db.load(theEdge);

    ORID theVertex = new ORecordId("v1_rid");
    OVertex v1 = db.load(theVertex);

    ORID theVertex2 = new ORecordId("v2_rid");
    OVertex v2 = db.load(theVertex2);

    boolean connected = false;
    OVertex from = e.getFrom();
    OVertex to = e.getTo();

    if(from.getIdentity().equals(v1) && to.getIdentity().equals(v2))
    {
        connected = true;
    }

    if(connected)
    {
        System.out.println("Vertex v1: " + from.getIdentity());
        System.out.println("Vertex v2: " + to.getIdentity());
    }
}


希望能有帮助


关于

您需要迭代一个顶点(v1)边,并检查它是否连接到另一个顶点(v2):

定向顶点v1、v2;
对于(边e:(Iterable)(->v1.边(方向.向外))
if(e.vertices(Direction.IN).next().id().equals(v2.id())){
}

Hi@doubleace3,您尝试过其他版本的OrientDB和Tinkerpop吗?没有。但这有什么帮助?有点震惊,没有办法找出顶点A是否与顶点B有关系?嗨..你有一个例子,使用tinkerpop 3.0?试图避免使用for循环。也在寻找修补匠解决方案。
OrientVertex v1,v2; 
for (Edge e : (Iterable<Edge>)() ->  v1.edges(Direction.OUT)) 
    if (e.vertices(Direction.IN).next().id().equals(v2.id())) {
    }