【问题标题】:Neo4j Monitoring and Management tool: Indexing issue + connection to java embedded applicatiionsNeo4j 监控和管理工具:索引问题 + 与 Java 嵌入式应用程序的连接
【发布时间】:2013-03-26 06:54:53
【问题描述】:

我正在使用 Neo4j 监控和管理工具(localhost:7474,Neo4j v 1.8.2),因为我认为这是一种可视化数据的好方法。不过我遇到了一些问题:

  1. 我创建了一个名为 auto_node_index 的索引。 (我也启用了自动索引,尽管这在这里无关紧要)例如当我运行以下语句时:

CREATE n = {type : 'company', name : 'neo4j'} RETURN n 开始 n=node:auto_node_index(name='neo4j') 返回 n

我没有得到任何匹配的数据,而是: 返回 0 行。 查询耗时 25ms 我哪里错了?

2.如何使我使用嵌入式 Java 应用程序创建的数据可见,反之亦然? 由于 Neo4j 将其数据存储在 /var/lib/neo4j/data/graphdb 我尝试像这样配置 GraphDatabaseService 的路径:

String DB_PATH = "cd /var/lib/neo4j/data/graphdb"; GraphDatabaseService db = new GraphDatabaseFactory().newEmbeddedDatabase( DB_PATH );

这显然是行不通的,因为该目录已创建并且没有切换到那里。 抱歉,我是新手。

非常感谢任何提示;)非常感谢!

【问题讨论】:

    标签: java indexing neo4j


    【解决方案1】:
    1. 您不会得到任何匹配,因为 Cypher 不会将您的节点 n 添加到您手动创建的索引中。如果您打开了自动索引,那么它应该在 node_auto_index 中可用,而不是在 auto_node_index 中。 如果您想将节点添加到手动创建的索引中,那么到目前为止,Cypher 创建的节点无法通过 Cypher 索引到该索引中(尽管我听说它将在未来的版本中提供)。你可以通过两种方式来解决这个问题。

    a) 使用 Cypher 创建节点并返回创建的节点。在您的 Java 应用程序中,获取该节点并手动添加到索引中(有关如何执行此操作的信息,请参阅 http://docs.neo4j.org/chunked/milestone/indexing.html

    b) 在 Java 中使用 Neo4j API 创建节点并为其编制索引

    2

    如果您想使用 Java 创建图表,请使用您有权写入的任何路径(不一定必须是 var/lib/neo4j/graphdb):

    String DB_PATH = "/var/lib/neo4j/data/graphdb"; 
    GraphDatabaseService db = new GraphDatabaseFactory().newEmbeddedDatabase( DB_PATH );
    

    然后您可以通过在 conf/neo4j-server.properties 中设置来将 webadmin 指向 DB_PATH 中的路径

    org.neo4j.server.database.location=/var/lib/neo4j/graphdb

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多