多tag,多属性查询

提问参考模版:

  • nebula 版本:
    image

  • 部署方式:分布式(3节点)

  • 安装方式: RPM

  • 是否为线上版本: N

  • 硬件信息

    • 磁盘:HDD
    • CPU
      -内存信息:16g
  • 问题的具体描述
    MATCH语句对2个tag的属性进行图查询时,使用enbula-studio进行查询,一直处于查询状态,感觉没有使用索引
    查询1:

MATCH (v1:Land)-[e:LANDOWNERSHIP]->(v2:Institution) WHERE v2.Institution.单位编码 == "431003010009" RETURN id(v1) 

查询2:

MATCH (v1:Land)-[e:LANDOWNERSHIP]->(v2:Institution) WHERE v2.Institution.单位编码 == "430524019027" AND v1.Land.图斑面积 < 7.038382891499999E7 RETURN id(v1)

查询3:

MATCH (v1:Land)-[e:LANDOWNERSHIP]->(v2:Institution{单位编码:"430581010016"}) WHERE v1.Land.图斑面积 < 2.4729453435000002E7 RETURN id(v1)

查询4:

LOOKUP ON Institution WHERE Institution.单位编码 == "430581010016" YIELD id(vertex) as id1 | GO FROM $-.id1 OVER LANDOWNERSHIP REVERSELY  WHERE properties($$).图斑面积 < 2.4729453435000002E7 YIELD src(edge) AS id

单位编码和图斑面积均已创建索引,且重建成功。
查询1能快速返回结果
查询2和查询3则一直处于查询状态,无法返回结果

问题1:查询2和查询3感觉是否未使用索引,索引的一般使用规则是什么样子?
问题2:查询4可快速返回结果,但是在文档j介绍中,$$是表示引用目的点属性,而我的节点关系为:Land-[]->Institution,这里感觉应该是使用$^,但是使用$^无法返回结果

能不能explain看下呢?查询2可以试下这个query

MATCH (v1:Land)-[e:LANDOWNERSHIP]->(v2:Institution) WHERE v2.Institution.单位编码 == "430524019027" 
WITH v1 WHERE v1.Land.图斑面积 < 7.038382891499999E7 RETURN id(v1)

使用你的查询语句,可以快速返回结果,谢谢;另外“能不能explain看下呢?”这啥意思?不懂

Explain 就是用 Profile + 查询语句,你可以试试

我使用下述语句进行压力测试,数据量Institution几十万,Land有900万个左右,WHERE条件随机生成
MATCH (v1:Land)-[e:LANDOWNERSHIP]->(v2:Institution) WHERE v2.Institution.单位编码 == “430981090007” RETURN v1

索引情况:


压力测试:

我想问下,为什么TPS为啥如此低?

问题找到了,不用费心了,公司用的交换机都是百兆的。

1 个赞

可以勾选自己的回复为解决方案啊,这样这个问题就算解决了,有新的问题可以开新的帖子哈,谢谢 wang

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。