yee
24
MATCH 中找 shortestPath 的算法还未完成,beta 版本 Match 开始支持变长边的查询,如果你知道两个点之间的最大步数不超过 N(不很大的情况),可以先用变长边把所有两点之间的路径取回再手动找到最短的一条路径。过程如下:
MATCH p=(v1:player{name: 'Tim'})-[:follow*N{likeness: 80}]-(v2:player{name: 'Nuggets'})
RETURN p
当然上面说的只是针对要对路径中某些边的属性做过滤的情况,不过滤的话 FIND SHORTESTPATH
是可以满足要求。Beta 之后我们会对 Match 中的 shortestPath 算法做支持。
1 个赞
Django
26
嗯嗯,感谢回答,那如果使用Tag去筛选节点,耗时上会不会存在一些问题?
Django
27
还想咨询下,看介绍说2.0.0 版本会逐步兼容 openCypher,这个当前进展情况如何?
目前还不支持tag筛选node,如果支持也会建立对应的索引,所以查询耗时不会快速增长。
有个问题哈,这里面的点ID、边ID就是我们所说的Tag吗,还是当前类型下的具体点。建shema的时候需要声明哪些东西呢?谢谢指导
Hello!欢迎来到Nebula Graph社区~
点ID不是Tag哈,请看下特意为你准备的示例代码,应该能解答你的问题哈:
--先要创建一个graph space
create space nba(partition_num=10,replica_factor=1,vid_type=fixed_string(32));
--然后用use命令使用或者说进入space
use nba;
--接下来要创建shema啦!
--创建tag,也就是点类型,同时设置好相关属性和他们的数据类型
create tag player(name string,age int);
create tag team(name string);
--创建edge type,边类型,也同时设置好相关属性和他们的数据类型
create edge serve(start_year int,end_year int);
create edge like(likeness int);
-- 接着就能插入点和边啦,请注意啦,values后面的"player100"就是点ID
insert vertex player(name,age) values "player100":("Tim Duncan", 42);
insert edge like(likeness) values "player100"->"player101":(95);
1 个赞
Nebula Graph Console
这个怎么安装呢,没有rpm的包吗,只能源码安装?没用过go,我安装时候报错:
go: github.com/dutor/liner@v1.2.2: Get “https://goproxy.cn/github.com/dutor/liner/@v/v1.2.2.mod”: dial tcp 139.215.140.213:443: i/o timeout
make: *** [fmt] Error 1