你好,我尝试理解一下这个需求,不知道对不对,不对的话请指正。
需求是通过多个复合的条件扫描索引,扫描出来的结果集再进行二次运算,前一次索引扫描的输出将被用作二次运算的输入。是这样吗?
在这个例子中,有两点建议:
1,假设索引扫描的判断条件是 “where name = ‘小明’ && age > 30 && sex = ‘male’”,那么在创建索引时,建议索引的column结构是(name, sex, age)。也就是尽量把==查询的列往前放,性能会有很大提升。
2,如果想要进行二次计算,除了上术的var模式,还可以试一下pipe 模式,例如 lookup … | go … , 这个查询模式会将lookup的输出做为go的输入。
参考
https://docs.nebula-graph.io/1.1/manual-EN/2.query-language/3.language-structure/pipe-syntax/
另外,上文中指的“多个条件如果不是复合索引,能不能以单个形式查询?” 指的是什么?能举个例子吗?