gpt4 book ai didi

database - 为什么 Neo4j 中的这些查询会返回不同的结果?

转载 作者:搜寻专家 更新时间:2023-10-30 23:43:29 24 4
gpt4 key购买 nike

我在安装Neo4j时自带的Neo4j电影数据库上练习。由于某种原因,这两个查询返回不同的结果:

match (keanu:Person {name: "Keanu Reeves"})-[:ACTED_IN]->()
<-[:ACTED_IN]-(actor), (actor)-[:ACTED_IN]->()<-[:ACTED_IN]-(other)
where NOT ((keanu)-[:ACTED_IN]->()<-[:ACTED_IN]-(other)) and
other <>keanu return other.name, count(other) as count order by count DESC;

match (keanu:Person {name: "Keanu Reeves"})-[:ACTED_IN]->(movie)
<-[:ACTED_IN]-(actor), (actor)-[:ACTED_IN]->()<-[:ACTED_IN]-(other)
where NOT ((keanu)-[:ACTED_IN]->(movie)<-[:ACTED_IN]-(other)) and
other <>keanu return other.name, count(other) as count order by count DESC;

唯一的区别是我指定了“电影”变量。我只想查一下没有和基努搭档,但和他搭档搭戏次数最多的 Actor 。结果是一样的,除了当我指定一个“电影”变量时,一个新 Actor 被添加到结果的顶部(最常与基努的联合主演一起演出)。该 Actor 根本不会出现在第一个查询结果中,而只会出现在第二个查询结果中并排在结果的首位。

最佳答案

第一个变体包含

where NOT ((keanu)-[:ACTED_IN]->()<-[:ACTED_IN]-(other)) 

第二个

where NOT ((keanu)-[:ACTED_IN]->(movie)<-[:ACTED_IN]-(other))

所以第一个过滤掉keanu任何电影中与other一起行动的所有路径。第二个过滤掉keanuthis电影中与other一起行动的所有路径。

关于database - 为什么 Neo4j 中的这些查询会返回不同的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32159498/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com