我有一个Neo4J db,我查询它可以获得E和F之间的最短路径(但它可以是数据库的任意子图)。我使用R中的RNeo4J驱动程序来完成这个任务。
我想将路径作为边缘列表返回给R,使用Cypher,这样我就可以直接使用边缘列表来创建Igraph并绘制或分析它。
我对Cypher还不熟悉,但我一直在使用浏览器在下面的查询行中尝试一些东西:
"MATCH p = shortestpath((n)-[*..5]->(m))
WHERE n.nodename = 'E' AND m.nodename = 'F'
WITH p
MATCH (f)-->(
我们正在尝试执行一个运行Neo4j查询的程序。
使用NetBeans,它成功地执行。但是当我们使用cmd运行它时,它会出现以下错误-
C:\>java -jar "C:\Users\sourabh\Documents\NetBeansProjects\freeb2\dist\freeb2.ja
r"
org.neo4j.cypher.EntityNotFoundException: Node 1 not found
at org.neo4j.cypher.internal.spi.gdsimpl.GDSBackedQueryContext$$anon$1.
当我使用这个cypher查询时
match p=(n)-[r*8]-(n)
where id(n)=548
with p
where ALL(x IN nodes(p)[1..length(p)] WHERE SINGLE(y IN nodes(p)[1..length(p)] WHERE x=y))
return count(p)
返回结果花了51922毫秒;这真的很长时间。我如何优化这个cypher查询?任何帮助都将不胜感激。
我有一个包含节点、关系、节点、关系的路径...集合。我想查找与此路径中的所有节点相关的节点。
有没有人能用Cypher给出查询示例?
现在我有
START startNode=node(3), endNode=node(5)
MATCH path=startNode-[:CONNECT*]->endNode
WITH path, relationships(path) AS connections, nodes(path) AS nodes
问题是,我不知道如何使用nodes集合来查找与该集合中的所有节点都有关系的节点。
如下图所示:
-> B --> E -
/ \
A - -> F
\ /
-> C --> D -
所有节点都是task类型。作为属性,它们有开始时间和结束时间(两者的数据类型都是DateTime)。所有的关系都是CONNECT_TO的,并且指向右侧。关系没有属性。
有人能告诉我下面的查询在Cypher中应该是什么样子的吗:节点A和F之间的每个分支都有多耗时?
作为结果的列表就可以了:
Path Duration [minutes]
------
我找不到在一个Cypher查询中执行条件更新的简单解决方案。
假设我有节点,游戏有State属性.
我希望有能力做到以下几点:
If game.state = X then set game.state = Y else set game.state= Z
是否可以在一个Cypher查询中实现?非常感谢你的回答。
我是Neo4j和Cypher的新手,正在写我的学士学位论文,在社交网络的情况下,我将关系数据库与Neo4j图形数据库进行了比较。我已经在SQL和Cypher中定义了一些查询,以便在JMETER中通过JDBC和REST API进行性能测试。然而,我在声明Cypher查询以获取节点时遇到了问题,这些节点是某个节点的朋友的共同朋友。
我的第一种方法是这样的:
MATCH (me:Enthusiast {Id: 488})-[:abonniert]->(f:Enthusiast)-[:abonniert]->(fof:Enthusiast)<-[:abonniert]-(f) RET
在Cypher中,您可以将路径锚定在两个节点f.e. match path=(a)-[r:rel*1..5]->(b)
where a.val = 1 and b.val = 2
return path 问题是,我如何才能获得中间包含node '(x) where x.val = 5‘的路径,而不是所有路径
我正在尝试查找Neo4j数据库中彼此距离最远的两个节点。出于分析的目的,我将两个节点之间的最短距离视为它们之间的距离。因此,最远的两个节点之间将具有最长的最短路径。我使用Cypher中的以下语法来查找最短的节点。
给定两个节点,如Neo4j示例文档中所示,我可以运行以下Cypher查询。
MATCH p = shortestPath((martin:Person)-[*..15]-(oliver:Person))
WHERE martin.name = 'Martin Sheen' AND oliver.name = 'Oliver Stone'
RETURN
我正在使用Neo4J并学习Cypher,并且有一个关于基于给定类型的第一个遇到的节点的属性(在下面示例代码的OPTIONAL MATCH行中)过滤结果的问题。
我的查询如下:
MATCH
(a:Word),
(b:Word)
WHERE a.lemma IN [ "enjoy" ]
AND b.lemma IN [ "control", "achievement" ]
OPTIONAL MATCH p = shortestPath((a)-[:IS_DEFINED_AS|IS_A_FORM_OF*..15]-(b))
RETUR
在cypher查询中,我现在使用collect得到多个结果,如何在cypher中按collect属性排序?
MATCH(u:User)
WITH COLLECT({name:u.name,date:u.date}) AS userinfo
RETURN userinfo
或者在有多个集合被合并的情况下
MATCH(u:User)-[r:CreatedBy]->(p:Project)
WITH COLLECT({name:p.name,date:p.date}) AS info
MATCH(i:Institue)-[owner:Owner]->(i:Institute)
W
我有一个CSV文件,其中的数据模式类似如下
1,2,3,4,5,6
7,8,9,1,2,3
4,5,6,7,8,9
1,2,3,4,5,6
7,8,9,1,2,3
4,5,6,7,8,9
然后,我使用了以下Cypher查询
CREATE CONSTRAINT ON (t:Timestamp) ASSERT t.date IS UNIQUE;
LOAD CSV FROM "file:///example.csv" AS line
MERGE (t:Timestamp) ON CREATE SET t.date: timestamp(), data:split(line,"
我在一个列表中有很多节点和边。目前,我正在循环遍历列表,并使用一个非常慢的查询插入每个节点。如何使用neo4jclient执行批处理插入?
节点对象:
public class myNode
{
public int id { get; set; }
public int floor { get; set; }
public double x { get; set; }
public double y { get; set; }
}
当前插入节点的方法:
public static void addNode(GraphClient client, myNode
我的League节点实体如下所示
@NodeEntity
class League
{
private Date startDate;
}
我想返回最近的联盟,当从shell执行时,下面的密码运行得很好
START n=node(*) WHERE has(n.__type__) and n.__type__='com.aravind.avl.domain.League' RETURN n ORDER BY n.startDate ASC LIMIT 1
我将其移至存储库,如下所示
public interface LeagueRepository extends Graph
我有一个会说几种语言的用户。我正在写一个查询,看看用户是否会说英语。我想通过搜索用户节点和语言节点之间是否存在关系来了解用户是否会说英语。我正在使用rels.to_other或rels.to_others进行此操作。正如下文所述,两者都失败了。"to_other“和"to_others”方法的区别是什么?
irb(main):105:0> u
=> #<User uuid: "b1461edd-a574-44a7-9555-68659a361be2", created_at: Tue, 06 Oct 2015 16:21:26 +0000, n
我在找什么
使用变量长度关系(请参阅),可以在两个节点之间有一个具有特定标签的可变数量的关系。
# Cypher
match (g1:Group)-[:sub_group*]->(g2:Group) return g1, g2
我正在中寻找与节点相同的东西,即对两个节点进行查询,在之间有可变的节点数,但是在节点上有一个标签条件,而不是关系
# Looking for something like this in Cypher:
match (g1:Group)-->(:Group*)-->(g2:Group) return g1, g2
示例
例如,我将使用这种机制在一个组结