如何从java获取Neo4j图形数据库的节点数,我们可以从磁盘存储和重用graphdb吗?

时间:2013-02-13 09:52:59

标签: java social-networking neo4j graph-databases

我刚开始看neo4j将它用于我的社交网络相关项目。在此期间,我遇到了以下代码:

https://github.com/neo4j/neo4j/blob/1.9.M04/community/embedded-examples/src/main/java/org/neo4j/examples/EmbeddedNeo4jWithIndexing.java

在浏览时(请参阅上面的代码链接),我很难知道如何获得添加到给定graphDb的节点总数。有没有办法使用graphDbnodeIndexreferenceIndex或其他任何方式找到它(节点总数)?如果是,怎么样?

我还需要帮助才能知道如何将graphdb存储到磁盘上的任何给定路径?如何加载这个存储的graphdb并对其执行操作,如搜索节点/关系等?

(当执行上面的代码时,有几个文件,如* .db,*。id,* .keys等..在给定的DB_PATH创建。这些文件有用的是什么?是否有这些文件包含创建的节点?如果是,我们如何使用它们?)

我们如何通过网络界面访问此graphDb,例如http://localhost:7474/webadmin/的信息中心或http://localhost:7474/db/data/的数据?

如果您需要任何具体信息,请告知我们。

谢谢,Nitin。

2 个答案:

答案 0 :(得分:5)

要开始使用Neo4j Embedded和Java API,请参阅:

http://docs.neo4j.org/chunked/milestone/tutorials-java-embedded.html

获取正确的节点和关系计数:

IteratorUtil.count(GlobalGraphOperations.at(gdb).getAllNodes())
IteratorUtil.count(GlobalGraphOperations.at(gdb).getAllRelationships())

要访问带有集成neo4j服务器的嵌入式图形数据库,请参阅   http://docs.neo4j.org/chunked/milestone/server-embedded.html

答案 1 :(得分:3)

Phewww!对于一次进入,这些都是很多问题......

要获取数据库中的节点和关系总数,请使用:

NodeManager nodeManager = ((GraphDatabaseAPI) graphDb).getDependencyResolver().resolveDependency(
            NodeManager.class);

long currentRelationships = nodeManager.getNumberOfIdsInUse(Relationship.class);
long currentNodes = nodeManager.getNumberOfIdsInUse(Node.class);

要更改图形DB的路径,只需将路径传递给GraphDatabaseFactory()。newEmbeddedDatabase方法。在你提到的例子中,你可以简单地设置DB_PATH,例如到/home/youruser/neo4j

要使用webadmin访问您的数据库,请下载neo4j,更改文件conf/neo4j-server.properties中的org.neo4j.server.database.location属性,并将其指向数据库的路径并启动服务器。