计划支持 shortestPath() 函数
你好,请问Nebula 2.0 支持建立多标签节点吗?
你好,想咨询一下,Nebula支持像Neo4j那样建立多标签节点嘛?
支持,比如你对一个点插入两个不同的tag,分别是person和studen,语法:
INSERT VERTEX person(name, age), student(grade, number) VALUES 1001:("Lucy", 8, "three", 20190901001);
Nebula的Tag和Neo4j的Label是有些不同的意义。因为两者的schema强弱是不一样的。
Label是用于建一个(组)点的索引,更接近于对于点的指针或者引用(如果不带属性的话)。remove label 还算轻量。
Tag 是用于定义一组schema。更接近于SQL数据表的定义。当然,一个点可以有多个Tag。不过alter schema是比较重的。
求问子图查询当前的测试版已经可以试用了吗?有没有配套的说明文档可以参考
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 算法做支持。
完美!!感谢
嗯嗯,感谢回答,那如果使用Tag去筛选节点,耗时上会不会存在一些问题?
还想咨询下,看介绍说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);
List不支持定义为属性类型,那要怎么用呢?
什么时候GA呢?
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
可以参考这个文档安装并连接 nebula-console
1月底