Neo4j-计算相似度并在节点之间插入新关系(如果不存在)
编辑: 我需要检查这段关系是否存在。如果不存在,则计算节点之间的相似性,这需要花费位时间。然后,我需要插入它们之间的关系。 我需要对图中的所有节点对重复此操作 此场景的编程范例如下所示:Neo4j-计算相似度并在节点之间插入新关系(如果不存在),neo4j,cypher,Neo4j,Cypher,编辑: 我需要检查这段关系是否存在。如果不存在,则计算节点之间的相似性,这需要花费位时间。然后,我需要插入它们之间的关系。 我需要对图中的所有节点对重复此操作 此场景的编程范例如下所示: If relationship exits then calculate similarity and insert relationship else do nothing (or) return value 这个查询还有一个问题,它也可能导致内存异常。如果是,如何克服这个问题 这是
If relationship exits
then calculate similarity and insert relationship
else
do nothing (or) return value
这个查询还有一个问题,它也可能导致内存异常。如果是,如何克服这个问题
这是我的疑问
MATCH (a{word:"review"}),(b{word:"nothing"})
MERGE (a)-[r:jsim]->(b)
MERGE (a)<-[s:jsim]-(b)
SET r.val =
CASE WHEN NOT (HAS (r.val))
THEN [1]
ELSE 2 END
SET s.val =
CASE WHEN NOT (HAS (s.val))
THEN [2]
ELSE 1 END
RETURN r,s
现在,jsim是我需要分配的值
假设a和b是两个节点,我必须找到它们之间的相似性,并添加与值的关系。A和B的相似性是它们之间的公共节点除以它们所连接的节点总数
Ex: A-->p,A-->q.A-->r,A-->s
B-->r,B-->s,B-->t,B-->u,B-->v
Sim(A,B) = Common nodes/Total Nodes
= 2/7
这是我尝试过的,但没有足够的知识来克服内存异常。请编辑您的问题并将查询添加到其中,在一条很小的注释中,这不是真正可读的,thanksIt在不知道您的“大查询”是什么样子的情况下,很难说出导致异常的原因。我将在CASEOK中使用内部查询再次编辑我的问题。对于
EXPLAIN
,我的意思是分析查询以找到可能导致异常的特定部分
Ex: A-->p,A-->q.A-->r,A-->s
B-->r,B-->s,B-->t,B-->u,B-->v
Sim(A,B) = Common nodes/Total Nodes
= 2/7