如何在neo4j cypher查询中找到n-gram? N-gram:来自路径中所有先前节点的一段距离或更多(比如> = x)的单词序列。
例如:选择A作为起始节点。
A -dist-> B, where dist(A,B)>=0.8 , one level
A -dist-> B -dist-> C, where dist(A,B)>=0.8,dist(A,C)>=0.8,dist(B,C)>=0.8
A -dist-> B -dist-> C -dist-> D, where dist(A,D)>=0.8, dist(B,D)>=0.8, dist(C,D)>=0.8
这意味着,所有可能的节点组合之间的距离应该大于阈值(即0.8)。
这是我的尝试:
MATCH p=(a{word:"quality"})-[r*1..2]->(b)
WHERE NONE (n IN nodes(p) WHERE size(filter(x IN nodes(p) WHERE n = x))> 1)
AND ALL(rel IN rels(p) WHERE rel.val >= 1.5)
WITH p,size(rels(p))+1 AS nodes
RETRUN p,nodes ORDER BY nodes desc
在此查询中,新添加的节点仅检查先前添加的元素 请在我的查询中建议更改。感谢。