NebluaGraph 是否能解决我们业务出现的问题?

执行下这条语句:

go 0 TO 10000 steps from "B11511111" over develop yield count(distinct id($$))

好的 您这边所说的 memgraph 是像RedisGraph 这种类型的吗?

czt_order 这个 tag 数据量大概多少?
czt_order.payment_on < datetime(‘2023-01-07’) 的选择度会很好吗?

56800

czt_order 这个tag 大约有 100W+
选择度这个问题,我不太了解,刚接触这个数据库不太久

是。redisgraph你试过嘛?

还没有,第一次接触图数据,就是使用我们的neblua,后面我可以再试试

试试这个:

LOOKUP ON czt_order WHERE czt_order.payment_on > datetime('2023-01-01') and czt_order.payment_on <  datetime('2023-01-07') YIELD id(vertex) AS vid, czt_order.total AS price
| GO 0 TO 1000 STEPS FROM $-.vid OVER buy REVERSELY WHERE id($$)=="B11511111" YIELD DISTINCT id($^), id($$), $-.price AS price 
| YIELD sum($-.price)
1 个赞

第一行 按照 czt_order 查询ID这个操作 查不出来数据,我不清楚是我表设计的原因还是怎么回事。
match 也没有数据

czt_order 之间没有任何关联关系。 只有 czt_user 节点购买以后生成一个 czt_order节点。

需要在 payment_on 这个属性上建立索引,并且 rebuild index,show jobs 确认执行成功。

好的 确实没有rebuild。

语句通过了,但是计算结果有问题。 实际的结果是2553593

第二句应该是 需要进行路径查找的,这个语句貌似只查询本人的订单。

LOOKUP ON czt_order WHERE czt_order.payment_on > datetime('2023-01-01') and czt_order.payment_on <  datetime('2023-01-07') YIELD id(vertex) AS vid
| GO 0 TO 10000 STEPS FROM $-.vid OVER buy REVERSELY WHERE id($$)=="B11511111" YIELD DISTINCT id($^), id($$), $^.czt_order.total AS price 
| YIELD sum($-.price)

结果还是一样的,第二句没有再进行路径上的查找,查询出来只有本人下的订单总额

好奇怎么知道图数据的?

验证下 LOOKUP 的结果是预期的吗?

LOOKUP ON czt_order WHERE czt_order.payment_on > datetime('2023-01-01') and czt_order.payment_on <  datetime('2023-01-07') YIELD id(vertex) AS vid

早起听说过,只是没有用过,最近是有了业务需求,然后深入了解了一下,由于你们文档写的比较好,所以就深入进来看看了

第一句没有问题的,跟预想的一样结果4000+

LOOKUP ON czt_order WHERE czt_order.payment_on > datetime('2023-01-01') and czt_order.payment_on <  datetime('2023-01-07') YIELD id(vertex) AS vid, czt_order.total AS price
| GO FROM $-.vid OVER buy REVERSELY YIELD DISTINCT id($^) AS srcId, id($$) AS dstId, $-.price AS price 
| GO 0 TO 10000 STEPS FROM $-.dstId OVER develop REVERSELY WHERE id($$)=="B11511111" YIELD DISTINCT id($^), id($$), $-.price AS price
| YIELD sum($-.price)

非常感谢。 生效了
但是时间貌似更长了 :sweat_smile: