如何通过Java在Neo4j中实现唯一节点

牛12331

我整夜都在搜索和阅读相关内容,但是我找不到任何可以运行的示例。

public class TestNeo4j {
public enum RelTypes implements RelationshipType {
    HASFOLLOW
}

private static final String MATRIX_DB = "target/matrix-db";
private GraphDatabaseService graphDb;
private long matrixNodeId;

public static void main(String[] args) throws IOException {
    TestNeo4j matrix = new TestNeo4j();
    matrix.setUp();
    matrix.shutdown();
}

public void setUp() throws IOException {
    deleteRecursively(new File(MATRIX_DB));
    graphDb = new GraphDatabaseFactory().newEmbeddedDatabase(MATRIX_DB);
    registerShutdownHook();
    createNodespace();
}

public void shutdown() {
    graphDb.shutdown();
}

public void createNodespace() throws IOException {

    try (Transaction tx = graphDb.beginTx()) {

        FileReader fr = new FileReader("twitter.txt");
        BufferedReader br = new BufferedReader(fr);
        String line = "";


        while ((line = br.readLine()) != null) {
            //read data like "1 1" 
                            //               "2 3"
            String s = line;
            String[] sa = s.split(" ");
            //build relation twitter and his follow each line  
            //In my program, for every line, it will create a new
                            //For example, I will get 1-2, 1-3, 1-4, but I want it to be
                            //     / 4
                            //   1 - 3                                                          
                            //     \ 2
                            //!!!!i want to use unique node how to change it!!!!
            Node node1 = graphDb.createNode();
            Node node2 = graphDb.createNode();
            node1.setProperty("id", sa[0]);
            node2.setProperty("id", sa[1]);

            node1.createRelationshipTo(node2, RelTypes.HASFOLLOW);
        }

        tx.success();       }

}

您能帮我实施吗?此外,我运行JavaQuery.java 。有关查询的示例始终会得到一个空的迭代。

暴风雨

您确定twitter.txt在类路径上并且没有得到FileNotFoundException吗?您可能要先检查一下。如果FileReader找不到您的文件,则不会创建任何节点和关系。

尽管我不确定您的示例为何行不通,但我确实有一些建议。首先,我将摆脱“ id”属性,因为它非常令人困惑。每个节点都已经有一个ID,因此您想将属性名称更改为其他名称。其次重要的是,因为你清楚地使用Java 7中,你可以使用的AutoClosable接口FileReader,并BufferedReader为好。

当我运行JavaQuery类时,确实得到了预期的结果。您遇到不同的行为再次让您感到非常奇怪。您为什么不尝试所有这些中最简单的示例?查看您从以下脚本获得的输出:

public class TestNeo4j {

    public static void main(String[] args) throws Exception {
        final GraphDatabaseService graphDb = new GraphDatabaseFactory().newEmbeddedDatabase("db");
        final Transaction tx = graphDb.beginTx();
        final Node node = graphDb.createNode();
        node.setProperty("test", "test");
        tx.success();
        tx.close();
        final ExecutionEngine engine = new ExecutionEngine(graphDb);
        System.out.println(engine.execute("START n=node(*) RETURN id(n), n.test").dumpToString());
        graphDb.shutdown();
    }

}

您的输出应类似于:

+----------------+
| id(n) | n.test |
+----------------+
| 0     | "test" |
+----------------+
1 row

让我知道你的结果。

编辑:

如果要创建唯一的节点(或路径),请使用Cyphers MERGE命令。它可以创建唯一的节点和/或完整的路径。一个例子:

MERGE (tweep1:Tweep{user: "twitter_account"})
MERGE (tweep1)-[:FOLLOWS]->(tweep2:Tweep{user: "another_account"})

如果已经有匹配的节点,它将创建或使用节点“ tweep1”。该节点将用于创建与节点“ tweep2”的关系。这是否或多或少地回答了您的问题?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在neo4j中创建唯一节点?

来自分类Dev

如何通过Java代码在Neo4j中使用数据库索引创建唯一节点(或获取现有节点句柄)?

来自分类Dev

Neo4j:如何在BatchInserter中创建唯一节点时加快速度

来自分类Dev

在neo4j中创建唯一关系而不创建唯一节点

来自分类Dev

指向其他节点的唯一节点,但在Neo4j中具有相同的值

来自分类Dev

Neo4J传入和传出关系的唯一节点?

来自分类Dev

从Neo4j中的现有设置添加唯一节点及其之间的关系

来自分类Dev

如何删除Java链表中的唯一节点?

来自分类Dev

如何使用表达式在XSLT 1.0中选择唯一节点?

来自分类Dev

如何通过neo4j中导入的csv文件创建唯一的节点和关系?

来自分类Dev

删除链接列表的唯一节点

来自分类Dev

如何获得一组无向关系的唯一节点对

来自分类Dev

在Neo4j中创建批量节点时如何生成唯一的UUID

来自分类Dev

如何在neo4j中跳过唯一的父节点以展平树状结构?

来自分类Dev

我如何使用cypher(和py2neo)将带有数组的JSON结构转换为唯一节点

来自分类Dev

如何通过使用Java API在neo4j 1.9.3中按名称获取节点?

来自分类Dev

如何找到进入同一节点的分区?

来自分类Dev

XPath查询以选择唯一的唯一节点

来自分类Dev

在一个密码查询中创建具有许多关系的唯一节点

来自分类Dev

C函数仅将唯一节点保留在单链列表中

来自分类Dev

用多父节点编码唯一节点

来自分类Dev

在session.save上合并两个节点(唯一节点)

来自分类Dev

在neo4j中创建唯一产生重复的节点

来自分类Dev

Neo4j中节点的唯一标识符

来自分类Dev

通过java在neo4j中查找给定两个节点的公共节点

来自分类Dev

XSLT:如何遍历具有多个相同子节点的唯一节点并仅选择一个特定子节点

来自分类Dev

Cypher:返回具有唯一节点的集合

来自分类Dev

如何通过neo4j密码创建唯一的CONSTRAINT到关系?

来自分类Dev

如何通过REST API在Neo4j中使用唯一关系?

Related 相关文章

  1. 1

    如何在neo4j中创建唯一节点?

  2. 2

    如何通过Java代码在Neo4j中使用数据库索引创建唯一节点(或获取现有节点句柄)?

  3. 3

    Neo4j:如何在BatchInserter中创建唯一节点时加快速度

  4. 4

    在neo4j中创建唯一关系而不创建唯一节点

  5. 5

    指向其他节点的唯一节点,但在Neo4j中具有相同的值

  6. 6

    Neo4J传入和传出关系的唯一节点?

  7. 7

    从Neo4j中的现有设置添加唯一节点及其之间的关系

  8. 8

    如何删除Java链表中的唯一节点?

  9. 9

    如何使用表达式在XSLT 1.0中选择唯一节点?

  10. 10

    如何通过neo4j中导入的csv文件创建唯一的节点和关系?

  11. 11

    删除链接列表的唯一节点

  12. 12

    如何获得一组无向关系的唯一节点对

  13. 13

    在Neo4j中创建批量节点时如何生成唯一的UUID

  14. 14

    如何在neo4j中跳过唯一的父节点以展平树状结构?

  15. 15

    我如何使用cypher(和py2neo)将带有数组的JSON结构转换为唯一节点

  16. 16

    如何通过使用Java API在neo4j 1.9.3中按名称获取节点?

  17. 17

    如何找到进入同一节点的分区?

  18. 18

    XPath查询以选择唯一的唯一节点

  19. 19

    在一个密码查询中创建具有许多关系的唯一节点

  20. 20

    C函数仅将唯一节点保留在单链列表中

  21. 21

    用多父节点编码唯一节点

  22. 22

    在session.save上合并两个节点(唯一节点)

  23. 23

    在neo4j中创建唯一产生重复的节点

  24. 24

    Neo4j中节点的唯一标识符

  25. 25

    通过java在neo4j中查找给定两个节点的公共节点

  26. 26

    XSLT:如何遍历具有多个相同子节点的唯一节点并仅选择一个特定子节点

  27. 27

    Cypher:返回具有唯一节点的集合

  28. 28

    如何通过neo4j密码创建唯一的CONSTRAINT到关系?

  29. 29

    如何通过REST API在Neo4j中使用唯一关系?

热门标签

归档