我目前正在创建一个可以从 Hadoop HBase 后端读取 Titan Vertex 的 Java 代码。我知道 blueprint api 在每个 TransactionalGraph 上都提供了一个 getVertices() 方法,但我仍在尝试实现我自己的方法。现在对于通常的顶点读取,我已经有一个可以读取整个 HBase 后端并从 Titan Graph 获取所有顶点的工作代码,但是我在实现分页时遇到了问题。
到目前为止我的代码:
Scan scan = new Scan();
Filter pageFilter = new ColumnPaginationFilter(DEFAULT_PAGE_SIZE, currentOffSet);
scan.setFilter(pageFilter);
scan.addFamily(Backend.EDGESTORE_NAME.getBytes());
scan.setMaxVersions(10);
List<Vertex> vertexList = new ArrayList<>(DEFAULT_PAGE_SIZE);
HTablePool pool = new HTablePool(config, DEFAULT_PAGE_SIZE);
ResultScanner scanner = pool.getTable(attributeMap.get("storage.tablename")).getScanner(scan);
但是 ResultScanner 返回整个 Graph。
currentOffSet是一个 int 变量,用于确定当前页码。
我也尝试过ResultScanner#next(int rowCount)。它工作正常。但在这个过程中,我没有返回上一页的选项。
谁能帮我 ?
先感谢您。