nebula 只知道边的类型如何查询数据?

nebula 2.0.1版本

nebula 只知道边的类型如何查询数据?
还有就是下面的问题,通过stats看是有数据的,但是查询又没有数据。


没有索引吧?:joy:

没有索引不就会报错吗

如果你指定插入的点的话,使用fetch语句。
如果你用match(或者lookup的话),需要在插入数据前先create index,
或者插入数据后,create index,然后rebuild index,然后使用match或者lookup

根据 自定义 source (NebulaSource) - Nebula Graph Database 手册

根据上面的文档也可以把边的数据找到,但是如何通过查询语句删除还是没有找到解决办法。。

现在只能用delete语句手动指定要删除的边数据:
https://docs.nebula-graph.com.cn/2.0.1/3.ngql-guide/13.edge-statements/4.delete-edge/

是的,只要知道边的数据就能删除。但是如何知道边的数据呢

MATCH (v1)-[:friend]->(v2) RETURN v1,v2

可能是新插入的数据没有 rebuild index


不得行哦

需要先创建边索引

create edge index edge_index on friend(edge_prop)
rebuild edge index edge_index


还是查询不到数据

MATCH (v1)-[:friend]->(v2) RETURN v1,v2 这条语句是走边索引
MATCH (v1:player)-[:friend]->(v2:player) RETURN v1,v2 这个是走 tag 索引

后面这条语句的话,你需要 rebuild 一下你之前在 player 上建的索引

show tag indexes;
rebuild tag index player_index;
  1. 索引是重建了的。
    image

  2. nebula根本不支持 match (v) 这个写法,必须 match(v:palyer)

  3. 您要不试试?问题很简答也很明确,就是nebula无法查询,点不存在的边。如果能查询出来该怎么查询呢。如果暂时无法查询,我就要把这个问题记录下来以备再犯

如何查询,点不存在的边?我的猜想是这样的,nebula在新增边的时候,没有验证边的点是否存在。建立边或者点的索引的时候也没有验证边的点是否存在?那么有没有工具去验证,或者找出点不存在的边的数据呢?大家可以参考下面的连接就可以造出上述问题的数据。

浙ICP备20010487号