neo4j中的GraphDatabaseService或NeoService有什么区别

时间:2010-02-03 07:37:37

标签: java neo4j

我正在学习使用neo4j,但对它的用法有点困惑。当我添加节点和关系时,我可以这样做:

GraphDatabaseService graphDb = new EmbeddedGraphDatabase("C:/temp/graphdb");
Transaction tx = graphDb.beginTx();
try {
  org.neo4j.graphdb.Node node = graphDb.createNode();
  ...

我也可以这样做:

NeoService neoService = new EmbeddedNeo("C:/temp/graphdb");
Transaction tx = neoService.beginTx();
try {
  org.neo4j.api.core.Node node = neoService.createNode();
  ...

这有什么不同呢?我应该使用哪一个?为什么他们有两种不同的机制?这只是API演变吗? :)我想使用MetaModel API,它需要一个NeoService,所以我猜的选择很明显。

3 个答案:

答案 0 :(得分:5)

对不起, 你应该使用第一个,因为在最新的1.0-RC1中,命名空间被移动了。这只是命名,语义是一样的。第二个示例已过时,应从官方文档中删除。你在哪里找到的?

干杯,

/ peter neubauer

答案 1 :(得分:2)

您已经发现了API演变评论。旧API是NeoService,因此您不应该使用它。继续你的第一个片段。有关API更改的更多信息,请参阅例如最新rc的发布邮件:

http://www.mail-archive.com/user@lists.neo4j.org/msg02378.html

如果您使用元模型组件的最新快照(0.7-SNAPSHOT),您会发现它使用最新的API。对于我们的1.0版本(应该是Real Soon Now :),我们将发布将使用新API的所有组件的非SNAPSHOT版本。

-EE

答案 2 :(得分:2)

关于元模型,请使用元模型组件(现在使用maven artifactId:neo4j-meta-model)。

我还注意到组件概述http://components.neo4j.org/neo4j-meta-model/有一些无效的示例代码和描述。我会尽力解决这个问题。