【发布时间】:2014-11-25 08:53:15
【问题描述】:
我们目前正在评估将 neo4j 用作我们引擎的一部分。 遗憾的是,我们的密码查询速度慢得令人无法接受。
所以我们正在考虑从 cypher 转移到 java。 创建一个解决以下问题的java插件是否可行: 我们的 neo4j 数据库映射了以下节点类型之间的关系:
- 产品
- 标签
- 制造商
- 客户
我们neo4j DB中的每个关系都有一定的成本(例如,一个Product和Tag_1之间的连接可能比同一个Product和Tag_2之间的连接成本更低,这比Product和一个某些用户)。
我们想找到与某个来源产品最相似的 N(10?20?100?)个产品。
相似性不仅取决于两个节点之间路径的短小,还取决于源和目标之间有多少条路径。
使用 cypher 的性能极差,我们开始质疑 Neo4J 是否是解决此问题的正确工具。
此处为所有 Neo4J 专家提出的问题:
在 Java 中创建一个小型路径查找算法似乎可行,该算法也计算两个节点之间的路径数?
我们需要小于 100 毫秒(最长!)的响应时间。
我们的 neo4j 服务器现在是这样的:
- Neo4J 版本:community-2.1.1
- 节点:650,000
- 产品节点:550,000
- 属性:8,000,000
- 关系:6,000,000
- 关系类型:9
提前感谢您的想法。
【问题讨论】:
标签: performance neo4j path-finding