我需要在Neo4j节点中保存大块的Unicode文本字符串。该文档没有提到每个节点可以存储的数据大小。
有谁知道吗?
答案 0 :(得分:5)
我刚刚使用neo4j网络界面尝试了以下内容:
我写了一行26个字符并通过32000行复制了它,总共有832000个字符。
我创建了一个带有“text”属性的节点,并在其中复制了我的文本,并且它运行良好。
我再次尝试了64000行,行末有空格,总共有1728000个字符。创建了一个新节点,然后查询节点并将结果复制回文件以检查大小(你永远不知道),wc给了我1728001(我认为复制/粘贴过程中的错误必须是这个)。 / p>
似乎没有抱怨。
仅供参考,这相当于一个平均大小为4的345600字和一个空格(5个字符)的文本,以及一本1000页的书,每页300字。
如果节点太多,我不知道这会对性能产生什么影响。如果由于这个原因不能正常工作,你总是可以考虑使用neo4j存储关于关系的信息,使用属性ID作为另一个面向文档的数据库的id来检索文本(或者简单地将文件的路径作为路径属性)。
答案 1 :(得分:4)
Neo4j默认使用Lucene编制索引。 Lucene是作为全文搜索工具箱构建的(Solr是事实上的搜索引擎实现)。由于Lucene打算搜索大量文本,我怀疑你可以根据需要将尽可能多的文本放入节点中,它可以正常工作。
答案 2 :(得分:0)
Neo4j是一个非常好的解决方案,用于管理对象之间的关系。您可能已经知道这些关系可以具有属性以及节点本身。但我认为你不能在这些节点上存储“大块”数据。我认为Neo4j旨在与另一个数据库一起使用,例如MongoDb甚至mysql。您首先需要的信息“非常快”,然后使用其他引擎查找它。在我的项目中,我存储用户名,姓名,出生日期,ID和这些类型的信息,但不是非常大的文本字符串。