如何在Neo4j Embeded中找到带有标签子集的节点

时间:2017-08-18 07:51:35

标签: java neo4j

我正在使用Java API,我正在寻找带有标签子集的节点。在cypher中,我使用此查询: Match(n) Where n:label1 OR n:label2 return n 那么,api中有没有任何方法呢?

谢谢

2 个答案:

答案 0 :(得分:2)

你实际上可以运行嵌入式Cypher查询,为什么要跳舞?

try (
    Transaction vTx = graphdb.beginTx();
    Result vResult = graphdb.execute("your cypher query here");
) {

    while (vResult.hasNext()) {
        Map<String, Object> vRecord = vResult.next();

        // process vRecord here
    }
    vResult.close();
    vTx.success();
}

希望这有帮助。

此致 汤姆

答案 1 :(得分:0)

我认为如果你分两步完成这项工作会很有效率。像这样:

    ResourceIterator<Node> thingAs = graphDB.findNodes( Labels.label1 );
    ResourceIterator<Node> thingBs = graphDB.findNodes( Labels.label2 );

否则相同的解决方案应该是这样的:

    ResourceIterable<Node> nodes = graphDB.getAllNodes();
    while( nodes.hasNext() )
        {
         Node node = nodes.next();
         if(node.hasLabel(Labels.label1 ) || node.hasLabel(Labels.label2 ))
            return true;
        }