match 查询数据同真实数据有出入

使用session.execute 批量执行insert语句后,使用MATCH查询数量:match (e:tag) return count(*) as cnt,返回的数量不是正确插入的数据量,需要等一段时间后才能正确查询到正确的数量,这个是为什么?

当中你 rebuild 过 index 么?如果只是单纯地统计某个数据的话,可以试试这个命令:SHOW STATS - NebulaGraph Database 手册

index有rebuild过,这个SHOW STATS是获取提交的语句数吧?针对有重复数据的会过滤吗?

插入的数据越多,需要等待的时间就越久,这个提交语句和实际执行语句是两个阶段?实际执行语句是异步的, 实际执行完语句有办法监听到吗?或者提交语句后必须等待语句执行完?有这个client吗?

show stats 需要 submit stats job 完成之后,才是真实的数据。它并非是实时的,比如你 10 点提交了 stats job,10 点 5 分插入了新的数据,那你 10 点 10 分 job 完成之后执行 show stats,它是没有最新的 10 点 5 分的那个数据的。

看文档,你需要去看 job 的完成情况,再来执行这个语句。

你说10点5份插入了新的数据是指什么?使用client执行insert语句?

我只是举个例子。你无论是 console 还是 java 之类的客户端提交了 stats job 之后,再插入新的数据,新数据是不会被统计到的。

哦哦 好的 感谢