大佬,早上好!谢谢你们陪伴我一周多的调研,我总结了一下,还有3,4目标有些问题,能否帮忙解决掉,完成这次的调研工作。
我这次调研的目标,基于 match p=(v)-[e*0..3]-[v2] return p;
1,多tag的属性过滤—已ok
2,多edgeType的属性过滤—已ok
3,指定第几跳的点属性过滤—调研中
如果是某一跳中间点可能会比较复杂
能不能帮忙提供一个例子
4,指定第几跳的边属性过滤—有问题
比如:p1=v1-e1-v2-e2-v3,我通过e[1]排除掉了e2之后,p1路径就没有了,预期是
返回 p1=v1-e1-v2
如果你希望比较第几跳的边和点,可以不用变长 pattern。
MATCH p=(v)-[e1]-(v1)-[e2]-(v2)-[e3]-(v3)
RETURN p
可以直接引用 pattern 中定义的变量做属性过滤,变长 pattern 没有显式定义中间点的变量所以会比较复杂。
边过滤结果有问题,可以去主仓提个 issue,详细描述一下复现过程 https://github.com/vesoft-inc/nebula/issues
好的,谢谢!
- 快收尾了,下面这个查询能对节点进行去重,如何在一个查询中能同时对路径p的节点和边都去重呢?
MATCH p=(v:player{name:"Tim Duncan"})-[e*0..1]-(v2)
WITH nodes(p) AS n
# 提示报错,-1009:SemanticError: Alias `p` not defined
# WITH relationships(p) AS a
UNWIND n AS r
WITH DISTINCT r AS r
RETURN collect(r);
cypher 语法默认的路径模式是 点可以重复边不能重复,你通过变量 e 拿到的边不会有重复。
- 下面的语句报错的:-1009:SemanticError: Alias used but not defined: `e’
- RETURN collect(r),e; 不能同时返回,如何能同时返回呢?
MATCH p=(v:player{name:"Tim Duncan"})-[e*0..1]-(v2)
WITH nodes(p) AS n
UNWIND n AS r
WITH DISTINCT r AS r
RETURN collect(r),e;
MATCH p=(v:player{name:"Tim Duncan"})-[e*0..1]-(v2)
RETURN toSet(nodes(p)), e
好的,非常感谢!
嗨,有没有好的办法判断space、tag、以及tag属性创建成功,除了轮询 desc space 之外有没有其他办法?其实我就是想实现同步的创建space、tag等(因为你们的底层是异步处理的),谢谢!
我没想到其他方法
future.get()
没看明白,能写一下示例代码吗?
session = pool.getSession("root", "nebula", false);
ResultSet resp = session.execute("...");
定位到原因了,如果有一条边数据,指向的实体tag不存在时,通过match查询时候graphd就会crash
1 个赞
嗯,会尽快修的
1 个赞
大佬,schema同步刷新的问题,3.2.0的版本如何解决,心跳时间可以设置为1s吗?
我们也遇到了同样的问题,创建schema后,需要立马插入数据,用户不能等太久
可以调小。
1 个赞
此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。