- nebula 版本:2.0
- 部署方式:分布式
- 问题:给点设定多TAG的疑问
- 具体描述
之前看手册中说可以给一个点赋多TAG,其在手册中运用方式为:
nebula> CREATE TAG t3(p1 int);
nebula> CREATE TAG t4(p2 string);
nebula> INSERT VERTEX t3 (p1), t4(p2) VALUES "21": (321, "hello"); -- Insert vertex "21" with two tags.
那么当TAG属性为多种时,可否给一个定点多个TAG值?我在代码中尝试了相关操作,第二种方式成功,但无法在MATCH语句中通过player{name:"Tim Duncan"}
匹配到,代码如下:
(root@nebula) [nba]> INSERT VERTEX player(name, age), playerext(name) VALUES "player100":(("Tim Duncan", 42), ("Tim"));
[ERROR (-7)]: SyntaxError: syntax error near `, 42), ('
Fri, 25 Dec 2020 14:07:50 CST
(root@nebula) [nba]> INSERT VERTEX player(name, age), playerext(name) VALUES "player100":("Tim Duncan", 42, "Tim");
Execution succeeded (time spent 2675/51487 us)
(root@nebula) [nba]> MATCH (v) WHERE id(v) == 'player100' RETURN v;
+--------------------------------------------------------------------------+
| v |
+--------------------------------------------------------------------------+
| ("player100") :playerext{name:"Tim", :player{name:"Tim Duncan", age:42} |
+--------------------------------------------------------------------------+
Got 1 rows (time spent 1846/55310 us)
Fri, 25 Dec 2020 14:22:11 CST
(root@nebula) [nba]> MATCH (v:player{name:"Tim Duncan"}) RETURN v;
Empty set (time spent 5198/54298 us)
Fri, 25 Dec 2020 14:22:45 CST
想问一下是我创建节点的方式有误还是MATCH语句撰写方式有误。
嗯嗯,是存在player(name)的索引的,我删除节点重新插入、更新索引、查询,但仍然无法查询到。
删除和建立节点,更新索引日志如下:
(root@nebula) [nba]> DELETE VERTEX "player100";
Execution succeeded (time spent 6306/55881 us)
Fri, 25 Dec 2020 14:41:28 CST
(root@nebula) [nba]> INSERT VERTEX player(name, age), playerext(name) VALUES "player100":("Tim Duncan", 42, "Tim");
Execution succeeded (time spent 5012/302480 us)
Fri, 25 Dec 2020 14:41:46 CST
(root@nebula) [nba]> REBUILD TAG INDEX name_single_1
+------------+
| New Job Id |
+------------+
| 26 |
+------------+
Got 1 rows (time spent 4041/53011 us)
Fri, 25 Dec 2020 14:41:51 CST
此时,可以通过MATCH的id属性查询到此节点,可以通过player{name}
属性查询到此前存在的"Tony Parker"
节点,但无法查询到新存入的"Tim Duncan"
节点
(root@nebula) [nba]> MATCH (v) WHERE id(v) == 'player100' RETURN v;
+--------------------------------------------------------------------------+
| v |
+--------------------------------------------------------------------------+
| ("player100") :playerext{name:"Tim", :player{age:42, name:"Tim Duncan"} |
+--------------------------------------------------------------------------+
Got 1 rows (time spent 2129/51787 us)
Fri, 25 Dec 2020 14:42:47 CST
(root@nebula) [nba]> MATCH (v:player{name:"Tony Parker"}) RETURN v;
+---------------------------------------------------+
| v |
+---------------------------------------------------+
| ("player101") :player{name:"Tony Parker", age:36} |
+---------------------------------------------------+
Got 1 rows (time spent 3482/52620 us)
Fri, 25 Dec 2020 14:43:29 CST
(root@nebula) [nba]> MATCH (v:player{name:"Tim Duncan"}) RETURN v;
Empty set (time spent 3397/52453 us)
Fri, 25 Dec 2020 14:43:51 CST