nGQL支持不指定tag查询属性吗

索引是用来解决“根据属性查找 vid ”的问题。至于创建了索引会降低写的性能,这个问题我们已经着手在解决了。具体的优化方案还要等 @bright-starry-sky 完成后来详细解答。

在有索引的情况下,上面的查询可以通过 Match 来查询:

MATCH (v:player{name: "Tim Duncan"})-[:serve]-(t:team)
RETURN t

嗯嗯,我们开始讨论的是LOOKUP WHERE不能用IN的情况下,怎么根据多个name查多个vid,貌似MATCH中的WHERE可以匹配多个player

测试了一下,如果在MATCH中用in匹配多个值,在10万节点,匹配两个name的情况下,匹配两个值要4s,有什么方式能优化吗?
MATCH (v:skincare_products) WHERE v.name in [‘大宝天然集萃美白霜’, ‘大宝集萃美白柔肤水’, “大宝SOD蜜”] RETURN v.name

这块应该是个 bug,这里没能选中索引,进行了全 tag 扫描,后面会做修复

@steam

1 个赞

:+1:

MATCH中用in list或者用OR去匹配多个属性时,查询效率都会很慢,可以关注一下。

是的,我们有关注到这块,打算对这块的 Index 选择做重构,这是个比较系统的工程,会涉及到 MATCH/WHERE 等子句,当前生成的 plan 不是很好,后面会持续的调优。如果你那边对性能有疑问,可以使用 EXPLAIN/PROFILE 的功能来看生成的执行计划应该就能知道问题大概出在哪里。文档:EXPLAIN and PROFILE - Nebula Graph Database Manual

1 个赞

这块我们在安排研发同学优化哈,等这个 pr 出来的时候我再来更新下帖子。