neo4j作为产品推荐工具

时间:2013-08-24 13:39:06

标签: neo4j cypher

我目前正在尝试使用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服务器也会导致内存问题。

我非常感谢有关如何处理性能问题的一些建议。

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

1 个答案:

答案 0 :(得分:0)

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