Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4J性能权衡-使用更多节点与关系_Neo4j_Cypher - Fatal编程技术网

Neo4J性能权衡-使用更多节点与关系

Neo4J性能权衡-使用更多节点与关系,neo4j,cypher,Neo4j,Cypher,假设我有3种不同类型的节点、计划、大想法和想法 现在,每个计划可以包含0+大创意和0+创意,以及这些关系的权重(投票)。大创意也可以由创意创造 例如,给定计划A A -[:HAS_BIG_IDEA {Weight: 30}] -> B (Big-Idea) A -[:HAS_IDEA {Weight: 10}] -> C (Idea) A -[:HAS_BIG_IDEA {Weight: 1}] -> D (Big-Idea) -[:IS_MADE_OF {PlanID, Da

假设我有3种不同类型的节点、计划、大想法和想法

现在,每个计划可以包含0+大创意和0+创意,以及这些关系的权重(投票)。大创意也可以由创意创造

例如,给定计划A

A -[:HAS_BIG_IDEA {Weight: 30}] -> B (Big-Idea)
A -[:HAS_IDEA {Weight: 10}] -> C (Idea)
A -[:HAS_BIG_IDEA {Weight: 1}] -> D (Big-Idea) -[:IS_MADE_OF {PlanID, Date, Weight}] -> E (Idea)
计划每天都在改变,投票也每天都在进行。最初,我决定为每种类型的计划添加一个节点,并每天添加新的关系,其中包含日期权重的属性。问题是,随着想法和大想法的数量以百万计,关系的数量开始膨胀,基于日期和权重的过滤计划变得慢得多

例如,查询列出2017年7月7日投票数>100的所有想法需要更长时间才能执行。为了减少起始点的数量,我将Date属性转移到Plan节点,并为每种类型和每一天创建新的Plan节点。由于这减少了查询的起始点,因此加快了查询速度。缺点是创建更多节点

所以我想我的问题更多的是关于我的第二种方法是否是好的实践。我已经读到,在关系上使用传统索引提示重新设计图表,因此我不太热衷于在关系的日期/权重上添加索引