我目前正在试验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.内存问题。
如能就如何处理性能问题提出一些建议,我将不胜感激。
在neo4j平台上,reco4j方法和直接查询的主要区别在于,在我们的软件中,我们构建数据模型,并存储新信息,以加快推荐过程。另一方面,创建模型需要一定的时间,但在此之后,您应该能够在毫秒内执行预测。