使用Scala与neo4j

12

我对Scala和Neo4j都不熟悉。我想使用Scala创建一个Neo4j数据库。有没有资源可以提供一些现成的代码来创建节点、删除节点、添加属性、创建索引等功能?

谢谢。


从http://neo4j.org/develop/scala获取的一些内容 - Michael Hunger
4个回答

10
实际上有几种选择,这取决于(a)你想如何与neo4j通信(Rest还是非Rest)(b)你的运行环境。
当你的应用程序只需要REST通信,并且你可以使用ANORM访问你的数据时。有一个很有前途的驱动程序,目前已经足够好,可以使用Cypher作为请求语言来完成很多事情。你可以在这里找到它(AnormCypher): https://github.com/AnormCypher/AnormCypher。 ANORM的强大功能引起了很多争议,但我认为它有很多好的特性。
还有FaKod Scala驱动程序非常完整,第二个版本(现在是M1)也将包括REST功能。 这个驱动程序(neo4j-scala)的强大之处在于提供了干净的DSL来抽象遍历内部,它相当直观和文档完善。

另一方面,我已经开始了我的 driver 一段时间,但没有太多时间投入其中(这很快就会改变)。当前版本仍然粗糙,并且与play应用程序紧密耦合。但是,该驱动程序尝试使用amap的future反应性(现在基于akka)和play的json api。然而,由于缺乏文档和清理,这种方式可能不是最有效的...任何帮助都是受欢迎的;-)。此外,这也是一个play插件,因此非常容易配置和注入。

有关驱动程序的更多信息,请访问此处: http://www.neo4j.org/develop/drivers


5
您可能想看一下 gremlin-scala。它使用 Tinkerpop 栈,类似于关系型数据库的 JDBC。您可以将其与多个图形数据库一起使用,包括 Neo4J。在 github 页面上有一些基本示例,在 gremlin wiki 中有更多示例。
免责声明:我是 gremlin-scala 的维护者 ;)

不错的东西!一个驱动程序统治所有。我确实很喜欢Tinkerpop堆栈。 - Andy Petrella

0

看一下renesca,它允许你从Scala使用Neo4j REST API。你可以创建和修改节点和关系,并一次性持久化所有更改。

对于更高级的场景,请查看renesca-magic,它是在renesca之上的抽象层。它允许您定义强大的类型安全图模式,并尽可能少地编写代码。

一些亮点包括:

  • 属性的多重继承
  • 超级关系(连接节点和关系)

声明:我是这些库的开发人员。


0

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