将 mongodb 与 neo4j 集成,是否有任何 API 可以链接它们?

2024-04-18

我正在研究推荐引擎。用户数据被收集(他们的友谊、位置、喜欢、教育……)并已存储在 mongodb 中。我需要向这些用户推荐相关产品。我计划使用 Neo4j 作为推荐引擎,原因很明显(易于节点之间的遍历、路径信息……)。问题是我必须首先将 mongodb 数据转换为 neo4j 节点/关系,处理数据并将结果发送回 mongodb 数据库。主要问题是我们最终将维护两个数据库,这是开发团队不会高兴的。我已经研究过类似的帖子mongodb-neo4j https://stackoverflow.com/questions/15114997/using-mongodb-and-neo4j-together and 弹簧数据 https://stackoverflow.com/questions/12643609/spring-data-using-neo4j-and-mongodb但不知道如何解决这个问题。 这些是我的问题
1-仅仅为了推荐引擎而添加另一个数据库是否值得(我们正在处理一个大型网络),尽管neo4j非常适合此类任务。
2-我使用 cypher 进行查询,对 java、rest API 和 spring data 不太了解。我应该使用哪种 API 来进行 mongodb-neo4j 通信?我当前的解决方案是使用 R 并将其用作连接 mongodb 和 neo4j 的平台。
3-其他图数据库怎么样,是否有适合与 Mongo 集成的数据库?


我找到了两种集成 mongodb 和 Neo4j 的方法。第一个是由ryan1234 https://stackoverflow.com/users/1108902/ryan1234将 Gremlin 与 Gmongo 一起使用。按照这个优秀的步骤如下blog http://thinkaurelius.com/2013/02/04/polyglot-persistence-and-query-with-gremlin/
1-下载Gmongo http://mvnrepository.com/artifact/com.gmongo/gmongo and Java 蒙戈驱动程序 http://mvnrepository.com/artifact/org.mongodb/mongo-java-driver/2.9.0
2-将两个jar文件复制到neo4j/lib目录下
3- 这是一个例子。假设我们在 mongodb 中有这个集合(称为如下)

{ "_id" : ObjectId("4ff74c4ae4b01be7d54cb2d3"), "followed" : "1", "followedBy" : "3", "createdAt" : ISODate("2013-01-01T20:36:26.804Z") }
{ "_id" : ObjectId("4ff74c58e4b01be7d54cb2d4"), "followed" : "2", "followedBy" : "3", "createdAt" : ISODate("2013-01-15T20:36:40.211Z") }
{ "_id" : ObjectId("4ff74d13e4b01be7d54cb2dd"), "followed" : "1", "followedBy" : "2", "createdAt" : ISODate("2013-01-07T20:39:47.283Z") }

从 Neo4j 中的 Gremlin shell 运行以下命令。

import com.gmongo.GMongo
mongo = new GMongo() 
db = mongo.getDB("local")
db.follows.findOne().followed
x=[] as Set; db.follows.find().each{x.add(it.followed); x.add(it.followedBy)}
x.each{g.addVertex(it)}
db.follows.find().each{g.addEdge(g.v(it.followedBy),g.v(it.followed),'follows',[followsTime:it.createdAt.getTime()])} 

这就是我们在 neo4j 中创建的等效图

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 mongodb 与 neo4j 集成,是否有任何 API 可以链接它们? 的相关文章

随机推荐