gpt4 book ai didi

java - 大容量可查询和可遍历的数据结构

转载 作者:行者123 更新时间:2023-12-01 05:58:24 26 4
gpt4 key购买 nike

我正在构建一个应用程序,需要一个可以查询和遍历的互连对象的数据结构。对象之间的连接可以是任意的,并且不一定事先已知。我需要这个数据结构是可查询的(通常的 SQL 提供的)并且也是可遍历的(像 Neo4j 这样的新图形数据库提供的)。我正在尝试找到一种既能同时完成这两个任务又能有效地处理非常大的数据集的东西。我们称这个数据结构为dao。我需要以下原始方法:

// dealing with the objects
dao.save(s);
Something s = dao.load(Something.class, 5);
dao.update(s);
dao.delete(s);

// dealing with the relations
dao.relate(s, t);
dao.unrelate(s, t);

// the tricky methods
dao.querier(Something.class).filter(...).sort(...).values();
dao.traverser(Something.class).start(s).path(...).filter(...).sort(...).values();

过滤器将类似于sql where子句,排序将类似于sql order子句,开始将是遍历的起始节点,路径将定义 BFS 和 DFS 遍历以及何时停止搜索等内容。

我尝试将其建模为具有邻接列表的顶点,但必须有更好的方法。有什么想法吗?

最佳答案

是的,Neo4j将是一个不错的选择。除了 Java 的原始用法之外,Jo4neo为图形上的对象模型提供基于注释的持久性。对于查询,您可以使用 Neo4j 高速 Java Traversers ,或使用类似 JRuby Wrapper 的内容这确实为 JRuby 的查询提供了非常方便的抽象。另外,Gremlin专门用于深度图遍历,但尚未针对速度进行优化。

关于java - 大容量可查询和可遍历的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2076242/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com