如何将图像存储到Neo4j

时间:2014-10-21 06:50:19

标签: neo4j cypher graph-databases

我遇到了一个场景,即每个节点都用图像表示。所以我必须将图像存储到neo4j中。请听听你对我的看法。

2 个答案:

答案 0 :(得分:5)

您有几种选择:

  1. 正如@ Christophe Willemsen建议您,将图像保存在磁盘或网站上,并使用网址引用它。
  2. 将其作为属性保存在byte []数组中。
  3. 使用Data URI(作为字符串)将图像保存在base64中。
  4. 当然,如果图像非常大,则不建议使用选项2和3。虽然您可以在数据库中保存缩略图并在文件系统上保存完整图像。

    您应该在属性中保存一些元数据,例如类型,大小,位置等。以改善数据库中的搜索。

答案 1 :(得分:1)

根据Neo4j community

  1. 请勿添加大块数据,例如base64,作为属性值。这是图形数据库的少数反用例之一。
  2. 二进制信息存储在某处,例如 AWS S3 ,并具有代表该照片或视频的节点。该节点包含S3 URL作为参考,还可能包含一些元数据(宽度,高度,质量,编解码器)。
  3. 使用关系来修改信息,例如标签,注释,所有权和权限。

Stefan Armbruster(Neo4j Staff)的信息表示敬意。