Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Neo4j节点连接_Java_Neo4j - Fatal编程技术网

Java Neo4j节点连接

Java Neo4j节点连接,java,neo4j,Java,Neo4j,您好,我正在尝试创建一个简单的neo4j数据库。我有一个for循环,它为目录中的每个文件创建一个新节点 for(file f : files){ Node document = graphDb.createNode(); document.setProperty( "name", f.toString().trim()); graphDb.getReferenceNode().createRelationshipTo(document, Matri

您好,我正在尝试创建一个简单的neo4j数据库。我有一个for循环,它为目录中的每个文件创建一个新节点

for(file f : files){
        Node document = graphDb.createNode();
        document.setProperty( "name", f.toString().trim());
        graphDb.getReferenceNode().createRelationshipTo(document, MatrixRelationshipTypes.REFRENCE);
那很好。然后,我尝试为文件中找到的每个名称创建一个节点:

                Node pName = graphDb.createNode();
                pName.setProperty("name", name.toString());
                pName.createRelationshipTo(document, MatrixRelationshipTypes.CONTAINS_NAME);
问题是它为找到的每个名称都创建了一个节点,我知道这是我的代码告诉它的。我真正想要的是,如果其中一个名称不存在,它就创建一个节点。如果其中一个名称确实存在,则将其链接到它所在的两个文档

有什么想法吗???

你想用一个。还有一些方法可以处理索引(在事务结束时)

Index name Index=graphDb.Index().forNodes(“名称”);
公共节点getOrCreateNode(字符串名称){
找到的节点=nameIndex.get(“name”,name).getSingle();
如果(find!=null)返回find;
节点名称Node=graphDb.createNode();
nameNode.setProperty(“名称”,名称);
添加(nameNode,“name”,name);
返回nameNode;
}
然后还可以使用通配符(Lucene搜索语法)查询节点索引

IndexHits nodes=nameIndex.query(“name:Jo*”);
Index<Node> nameIndex = graphDb.index().forNodes("names");

public Node getOrCreateNode(String name) {
  Node found = nameIndex.get("name",name).getSingle();
  if (found!=null) return found;
  Node nameNode = graphDb.createNode();
  nameNode.setProperty("name",name);
  nameIndex.add(nameNode, "name", name);
  return nameNode;
}
IndexHits<Node> nodes = nameIndex.query("name:Jo*");