我目前正在尝试使用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服务器也会导致内存问题。
我非常感谢有关如何处理性能问题的一些建议。
答案 0 :(得分:0)
reco4j方法与neo4j直接查询的主要区别在于,在我们的软件中,我们构建了一个数据模型,并存储了可以加快推荐过程的新信息。另一方面,创建模型需要一定的时间,但之后您应该能够以毫秒为单位执行预测。