我正在使用Java API,我正在寻找带有标签子集的节点。在cypher中,我使用此查询:
Match(n) Where n:label1 OR n:label2 return n
那么,api中有没有任何方法呢?
谢谢
答案 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;
}