提问者:小点点

neo4j作为产品推荐工具


我目前正在试验neo4j(v1.9.2)作为产品推荐工具。

该模型非常简单,只有几个事务,每个事务都与使用“CONTAINS”关系的产品相关联。

给定一个产品,以下密码查询返回其他交易中包含的推荐产品。

START product=node(3)
MATCH product-[:CONTAINS]-otherTransaction-[:CONTAINS]->other_product
WHERE product <> other_product
RETURN other_product.number AS productCode,
COUNT(other_product) AS ranking
ORDER BY ranking DESC

该查询按预期工作返回其他推荐产品,但是,对于大型数据集,它非常慢!使用JavaAPI方法而不是cypher并没有太大区别。即使使用neo4j服务器也会导致out. of.内存问题。

如能就如何处理性能问题提出一些建议,我将不胜感激。

  1. 是否有多线程方法来遍历图?
  2. 如何将上述密码查询分解为多个子查询,然后整理答案?
  3. 是否应该改变遍历方法,而不是尝试访问与起始产品关联的所有节点?

共1个答案

匿名用户

在neo4j平台上,reco4j方法和直接查询的主要区别在于,在我们的软件中,我们构建数据模型,并存储新信息,以加快推荐过程。另一方面,创建模型需要一定的时间,但在此之后,您应该能够在毫秒内执行预测。