图数据库服务(GraphDatabaseService)和NeoService在neo4j中有什么区别?

3

我正在学习使用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,所以选择显然是NeoService。

3个回答

5
抱歉,您应该使用第一个选项,因为在最新的1.0-RC1中,命名空间已被移动。这只是命名问题,语义是相同的。第二个示例已经过时,应从官方文档中删除。你在哪里找到这个?祝好!/ peter neubauer

谢谢您的回答!我正在尝试使用MetaModel,它需要MetaModelImpl构造函数中的NeoService。 - Kaitsu

2
你的API演进评论说得很对。旧的API是NeoService,所以你不应该使用它。选择你的第一个片段。有关API更改的更多信息,请参阅最新rc的发布邮件。

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

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

看起来meta-model组件0.7-SNAPSHOT仍然使用旧的Neoservice。所以,我不能在neo4j-kernel 1.0-rc中使用新的API(其中包含GraphDataService)。不过,在meta-model的主干中,这个问题似乎已经修复了 :) - Kaitsu

2
关于元模型,请使用元模型组件(现在具有Maven artifactId:neo4j-meta-model)。
我还注意到组件概述http://components.neo4j.org/neo4j-meta-model/中有一些无效的示例代码和描述。我会尝试修复它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接