跳到主要内容

结果游标 ​

GraphResultCursor 是可关闭的 Iterator,用于逐条读取 GraphRecord。

java
try (GraphResultCursor cursor =
         graph.query().executeCursor(query, options)) {
    while (cursor.hasNext()) {
        GraphRecord record = cursor.next();
        consume(record);
    }
}

生命周期 ​

游标使用完必须 close。close 应该是幂等的;关闭后 hasNext 返回 false,继续 next 会失败。

后端差异 ​

Neo4j 适配器使用 Driver 的流式结果,游标关闭会释放 Session。Nebula SessionPool 当前返回物化 ResultSet, executeCursor 使用统一的内存包装器,并不代表后端真正支持流式读取。

maxRecords 和截断 ​

游标同样遵守 GraphOptions.maxRecords。达到上限后,metadata.truncated 会说明后端仍有未返回记录。需要继续 读取时改用分页,而不是重复读取同一游标。