如何在Neo4j的节点属性中存储矢量化的,按年编制索引的数据?

时间:2019-06-27 17:22:27

标签: neo4j cypher graph-databases

我有一个大型数据库,其中有许多节点(:Node)。这些节点在给定的(:Year)中创建,并且该信息通过(n:Node)-[:CREATED_IN]->(y:Year)存储。

对于y的任何年份,我计算y..2020的所有年份的多个标量得分(类似于PageRank)。我还计算图形嵌入,即向量。

我想存储这些标量和向量以供将来计算。

我尝试了两种方法,两种方法都不令人满意:

(1)为每个节点每年的每个分数创建一个不同的属性(例如2018_PageRank2018_Word2Vec)。这是不理想的,因为我最终拥有成百上千的属性,并且查询更加复杂。

(2)为大小为2020的每个标量创建一个向量,然后将标量得分计入该向量的适当位置。例如,2018年的PageRank得分s将在n.PageRank[2018-1]中。但是,这浪费了空间,并且不能用于矢量化嵌入。

任何帮助/建议将不胜感激。

1 个答案:

答案 0 :(得分:1)

如果我对模型的理解正确,那么我会将所有嵌入和PageRank得分存储为新关系的属性:EMBEDDINGS

因此您的最终模型将是:

(:Node)-[:EMBEDDINGS{pagerank:1,embeddings...}]->(:Year{value:'2018'})

由于评论而编辑