Neo4j监控和管理工具:索引问题+与java嵌入式应用程序的连接

时间:2013-04-04 09:19:04

标签: java indexing neo4j

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

  1. 我创建了一个名为auto_node_index的索引。 (我也启用了自动索引,虽然这在这里无关紧要)当我运行以下语句时:
  2. 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的路径:

    String DB_PATH =“cd / var / lib / neo4j / data / graphdb”; GraphDatabaseService db = new GraphDatabaseFactory()。newEmbeddedDatabase(DB_PATH);

    显然不起作用,因为目录已创建且未切换到那里。 对不起,我对此非常感兴趣。

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

1 个答案:

答案 0 :(得分:1)

  1. 您不会得到任何匹配项,因为Cypher不会将您的节点n添加到您手动创建的索引中。如果您启用了自动索引,那么它应该在node_auto_index中可用,而不是auto_node_index。 如果要将节点添加到手动创建的索引中,那么截至目前,Cypher创建的节点无法通过Cypher索引到该索引中(尽管我听说过这将在未来的版本中提供)。你可以通过两种方式解决这个问题。
  2. 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