0

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

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

CREATE n = {type : 'company', name : 'neo4j'} RETURN n START n=node:auto_node_index(name='neo4j') RETURN n

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

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

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

这显然不起作用,因为该目录已创建并且没有切换到那里。对不起,我对此很陌生。

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

4

1 回答 1

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

于 2013-04-04T10:40:28.773 回答