我们计算一些文档的词频(tf-idf)。我们将这些术语表示为与某些文档(更多节点)相关的节点。Neo4j正在载入大数据:数据结构,Matrix vs Json
问题是,我必须填写我们的Neo4j数据库与条款和文件之间的加权关系,这是很多数据。
我们一直在使用HTTP REST服务,我的队友告诉我他会制作一个矩阵,我可以使用它来填充关系图,我认为这会是错误的,因为它会变成O (N^2)。
我认为最好使用json结构并通过HTTP发送,然后逐个插入关系。
哪个是处理这种数据结构的最好方法?
我们计算一些文档的词频(tf-idf)。我们将这些术语表示为与某些文档(更多节点)相关的节点。Neo4j正在载入大数据:数据结构,Matrix vs Json
问题是,我必须填写我们的Neo4j数据库与条款和文件之间的加权关系,这是很多数据。
我们一直在使用HTTP REST服务,我的队友告诉我他会制作一个矩阵,我可以使用它来填充关系图,我认为这会是错误的,因为它会变成O (N^2)。
我认为最好使用json结构并通过HTTP发送,然后逐个插入关系。
哪个是处理这种数据结构的最好方法?
请看看我们在Neo4j的最新里程碑Cypher的LOAD CSV子句中的一项新功能。
http://docs.neo4j.org/chunked/milestone/import-importing-data-from-a-single-csv-file.html
生成要分析包含每一个独特的字,它的频率文档的CSV文件。将该CSV文件推送到可从Neo4j数据库服务器通过HTTP GET访问的位置。
这暗号查询将是这样的:
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM
"http://localhost:8888/csv/docid-ABCD-0000001.csv"
AS csvLine
MERGE (doc:Document { id: csvLine.document_id })
MERGE (word:Word { word: csvLine.word })
MERGE (doc)-[:HAS_WORD { weight: csvLine.word_frequency }]->(word)
此查询获取或创建文档节点,文字节点,然后连接两个和资格文档中的每个词词频的关系。
CSV文件的标题是:DOCUMENT_ID,文字,word_frequency
注意:您必须下载的Neo4j(2.1.0-M01)的最新里程碑使用LOAD CSV作为我的时间张贴这个。建议不要在生产应用程序中使用里程碑。