不好意思,我问一下2.0 beta里面会 对 FIND PATH 支持带属性过滤的搜索吗?可以这样理解吗
不一定是通过 find path 语法实现,而是通过 match
有个板块 可以去提需求
像这样的查询语句吗?谢谢
MATCH (v1:player) -[:follow]-> (v2) -[:serve]-> (v3) WHERE v1.name == “Tim” and v3.name == ‘Nuggets’ RETURN v1.name AS Player, v2.name AS Friend, v3.name AS Friends_Team;
找2个节点的最短路径:
先用一度好友去试,不行再用二度好友去试,再用三度好友去试 。。。 是这样理解的吗?请斧正
rust 需要等我们升级第三方库之后会提供,应该这个月底之前会提供一个简单版,然后打算让社区爱好者参与开发贡献,到时候欢迎贡献。
MATCH (v1:player) -[:follow]-> (v2) -[:serve]-> (v3) WHERE v1.name == “Tim” and v3.name == ‘Nuggets’
是 “查找 Tim 和 Nuggets 间的2跳路径,并且限定第一跳的边类型是 follow,第二跳是 serve”
用match暂时还 实现不了 找2个节点之间的最短路径哈,只能先用一度好友去试,不行再用二度好友去试,再用三度好友去试 。。。 这样理解没错吧
计划支持 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,如果支持也会建立对应的索引,所以查询耗时不会快速增长。