作为我正在开发的内容管理系统的一部分,我已经将MongoDB作为主要的数据存储,它提供给ElasticSearch和Redis。所有这些都是以解密方式配置的。
我目前正在尝试用JSON (一种DSL )开发一个声明式api,在实现时,它将使我能够用JSON编写统一的查询,但在后端,这些数据存储协同工作才能得出结果。联合搜索,如果您愿意的话。
现在,在充实此Json api支持的查询类型时,我遇到了当前设置不(有效)支持的一类查询:基于图形的查询,如friend- of -friend、RDF-queries等。我也希望支持这些查询。
因此,我正在寻找一种方法,以最合适的方式将GraphDB引入这个生态系统。我可能应该说应用层位于Node.js中。
我读过很多比较Neo4J (一种流行的GraphDB)和MongoDB的文章,但没有太多的实际用例,现实世界中两者互补的场景。
任何指点都非常感谢。
发布于 2013-02-03 23:45:19
您可能想看看structr1,它有一个可以使用Java配置的RESTful图形数据库后端。在未来的版本中,将有一个仅使用REST调用的配置选项,以便您可以启动structr服务器,并将其配置和使用为独立的图形数据库后端。
请通过推特或电子邮件与我们联系。
(免责声明:我是structr的开发者之一,所以这条评论可能不是100%公正的:)
1
发布于 2013-05-07 02:01:14
这些数据库具有很强的互补性。
使用MongoDB存储原始数据/记录系统,并将原始数据加载到Neo4j中,以获得更多洞察/分析。当您处理非结构化数据时,您希望将信息存储在有利于非结构化数据的数据存储中- MongoDB可以满足您的要求(其他类似的数据库也是如此)。虽然Neo4j被认为是一个非结构化数据库,但它并不适合非结构化数据。因为您必须确定什么是关系,什么是节点,以及为每个节点存储了什么属性-当您拥有半结构化数据并对要执行的分析类型有所了解时,它更适合。
一个很好的体系结构是将非结构化数据存储在MongoDB中,然后使用作业将它们加载到Neo4j中。这允许您重新加载图形,如果您发现有新的信息要存储在图形中以进行额外的分析。
它们绝对不是彼此的替代品。它们适合非常不同的用例。
https://stackoverflow.com/questions/14673521
复制相似问题