【问题标题】:Neo4J : Java Heap Space Error : 100 k nodesNeo4J:Java 堆空间错误:100 k 节点
【发布时间】:2014-03-24 23:36:31
【问题描述】:

我有一个超过 100,000 个节点的 neo4j 图。当我通过 REST 使用以下密码查询时,我得到一个 Java Heap Error 。该查询正在从一组购买中生成一个 2 项集。

MATCH (a)<-[:BOUGHT]-(b)-[:BOUGHT]->(c) RETURN a.id,c.id

类型 1 (a,c) 和类型 2 (b) 两种类型节点的叉积为 80k*20k

是否有针对相同目的更优化的查询?我仍然是 cypher 的新手。 (我可以在所有 Type1 和 Type2 节点上分别使用两个索引) 或者我应该只是增加 java 堆大小。

我正在使用 py2neo 进行 REST 查询。

谢谢。

【问题讨论】:

    标签: graph neo4j cypher py2neo


    【解决方案1】:

    正如您所说,叉积是 80k * 20k,所以您可能会将它们全部拉过电线? 这可能不是你想要的。通常,此类查询由 start userstart product 绑定。

    您可以尝试在 neo4j-shell 中运行此查询:

    MATCH (a:Type1)<-[:BOUGHT]-(b)-[:BOUGHT]->(c) RETURN count(*)
    

    如果节点上有标签,可以使用该标签Type1?驾驶它。 只是为了看看你在看多少条路径。但是 80k 乘以 20k 是 16 亿条路径。

    我不确定您使用的版本(哪个)的 py2neo 是否已经为此使用流媒体?尝试将事务端点与 py2neo 一起使用(即 cypherSession.createTransaction() API)。

    【讨论】:

      猜你喜欢
      • 2015-06-29
      • 2016-01-19
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-05
      • 2016-04-10
      相关资源
      最近更新 更多