Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j 在查找匹配项时增加关系之间的权重-cypher_Neo4j_Cypher - Fatal编程技术网

Neo4j 在查找匹配项时增加关系之间的权重-cypher

Neo4j 在查找匹配项时增加关系之间的权重-cypher,neo4j,cypher,Neo4j,Cypher,我在cypher中有一个查询,我创建了以下关系: 匹配(u:user{id:“10662”})-[r:has_profile]->(p:profile) ,(u2:用户)-[r2:具有_配置文件]->(p2:配置文件) 哪里 p、 用户id p2.user\U id 和abs(u2.date_出生-u.date_出生)>=946080000 合并u-[r:matches_与{weight:rand()}]>u2 返回collect(u2.id)作为id这里是一个查询,它查找从特定用户开始的所有

我在cypher中有一个查询,我创建了以下关系:

匹配(u:user{id:“10662”})-[r:has_profile]->(p:profile)
,(u2:用户)-[r2:具有_配置文件]->(p2:配置文件)
哪里
p、 用户id p2.user\U id
和abs(u2.date_出生-u.date_出生)>=946080000
合并u-[r:matches_与{weight:rand()}]>u2

返回collect(u2.id)作为id
这里是一个查询,它查找从特定
用户开始的所有
匹配关系,增加关系的权重,并返回按权重排序的结果

MATCH (u:user { id : "10662" })-[r:matches_with]->(u2)
SET r.weight = r.weight + 1
RETURN u, r, u2
ORDER BY r.weight;

我找到了一种可以改变重量的装置。。 我在return语句之前添加了merge子句:

MATCH(u:user{id:“10662”})-[r:matches_with]->(u2)
合并(u)-[m:将_与]->(u2)匹配
设置m.重量=
不存在时的情况(重量(m))
然后toFloat(0.125)
其他最后一个(m.重量)/2
结束
返回u.id、m、u2.id

按米重订购如果我的查询是第一次运行,它将运行10个与关系匹配的\u。如果我再次运行查询而不是添加权重,它将再次生成10个匹配项。我试图找出如何避免在每次匹配中使用关系重新创建匹配。您问题中的查询是不合法的,因为它引用了一个未定义的
p
变量。请提供您的实际查询。我更改了原始查询以合并参数。感谢您指出这一点。您也可以在创建集m.weight=0.125上使用
,在匹配集m.weight=m.weight/2.0上使用