Neo4j的找到类似的连接节点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Neo4j的找到类似的连接节点相关的知识,希望对你有一定的参考价值。

我想弄清楚以下问题:我有两个节点:Merchant:Customer。这两者是有关系:BUY相关。我想找到具有相同:Merchant节点,甚至更好:Customer节点,这一比例让我们说90%的:Customernodes的。谢谢。

答案

这帮助了我:https://neo4j.com/docs/graph-algorithms/current/algorithms/similarity-jaccard/

重要的是,要比较的所有节点都在同一个图形和连接。

MATCH (p:Person)-[:LIKES]->(cuisine)
WITH item:id(p), categories: collect(id(cuisine)) as userData
WITH collect(userData) as data
CALL algo.similarity.jaccard.stream(data)
YIELD item1, item2, count1, count2, intersection, similarity
RETURN algo.getNodeById(item1).name AS from, algo.getNodeById(item2).name AS to, intersection, similarity
ORDER BY similarity DESC

应该是这样的,(这取决于你的分贝)

MATCH (p:Merchant)-[:BUY]->(consumer)
WITH item:id(p), categories: collect(id(consumer)) as userData
WITH collect(userData) as data
CALL algo.similarity.jaccard.stream(data)
YIELD item1, item2, count1, count2, intersection, similarity
WHERE similarity > 0.9
RETURN algo.getNodeById(item1).name AS from, algo.getNodeById(item2).name AS to, intersection, similarity
ORDER BY similarity DESC

按照我的理解它采用了捷卡(https://en.wikipedia.org/wiki/Jaccard_index)到节点的ID。

PS:它安装插件的使用是很重要的:https://neo4j.com/docs/graph-algorithms/current/introduction/#_installation

以上是关于Neo4j的找到类似的连接节点的主要内容,如果未能解决你的问题,请参考以下文章

Neo4j - 遍历以找到特定的连接组件

我如何基于Neo4j中的子节点链接创建节点之间的链接

如何将这种图存储在 neo4j 中以进行快速遍历?

如何在neo4j中获取所有连接的节点

Neo4j - 复杂的密码查询 - 需要外连接

电影智能问答——neo4j数据库创建