问题标签 [neo4j-traversal-api]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
neo4j - neo4j 遍历 api 部分扫描 hub 节点
我正在使用遍历 API 来遍历包含一些集线器的图,即具有许多传入/传出边的节点。我只想遍历其中的一些,例如 6000 然后停止。由于时间原因,遍历所有这些都不是一种选择,并且不遍历它们也不是一种选择。有人知道这是否可能?
谢谢
neo4j - Neo4J Java Native APIs vs Traversal APIs vs Cypher
有没有人做过 Neo4J Java Native APIs、Traversal APIs 和 Cypher 的性能评估。从性能的角度来看,上述三个选项中的哪一个会给我带来更好的结果?另外,对于写操作,我应该使用 Native java APIs 还是 cypher。是否有可能在本机 API 中批量执行数据库操作,以便它只访问数据库一次,而不是每次创建节点/关系。
java - 如何获取本地运行的 Neo4j 服务器的 GraphDatabaseService 实例
我正在尝试 neo4j 遍历 api。所有在线示例都与GraphDatabaseService
实例一起使用,traversalDescription()
然后使用它来定义遍历模式。
但是在线示例(例如这个)用于从嵌入式数据库/数据库文件GraphDatabaseFactory
中获取实例:GraphDatabaseService
我想将它与本地运行的 neo4j 服务器实例一起使用。通常我通过调用session
opbtained 实例上的方法来做到这一点,如下所示:
我们如何GraphDatabaseService
从driver
或session
实例或通过其他方式获取实例,以便我们可以使用本地运行的 neo4j 服务器实例?还是我们只能在嵌入式 neo4j 数据库中使用遍历 api?
neo4j - 使用 Neo4j 遍历 API 获取遍历的唯一路径数
我创建了以下基本图表:
该图如下所示:
当我运行以下密码时:
我得到2
作为输出。似乎nodes()
实际上并没有返回路径中的节点数,而只是返回结果中的行数,因为如果我返回path
:
我在返回的结果中得到两行:
现在我猜测如何在使用 Neo4J 遍历 API 进行遍历时获得相同的输出。我得到密码中唯一节点的数量,如下所示:
上面的查询正确返回6
。
在遍历 API 中也可以通过在路径扩展器中使用静态计数器来完成,每次expand()
调用时都会递增。(有没有更好的方法呢?)
但是,我无法想出在使用 Traversal API(相当于上面的RETURN count(nodes(path))
)时告诉我在遍历期间遵循的唯一路径数的方法。我怎样才能做到这一点?遍历API不可能吗?
PS:通过唯一路径,我的意思是遍历时访问的节点顺序的唯一排列。例如, alla-b-c
和a-c-b
是a-b-c-d
唯一的。
java - Neo4j 基于多路径显示子图
我想基于多个路径在 Neo4j(本地主机上的社区版)中显示一个子图。路径是traversalDescription()
带有特殊的自定义的结果evaluate(Path path)
。目的是忽略一个特殊的关系和节点序列(细节到序列)。据我所知,这在密码查询中是不可能的。
结果如下所示:
它基本上是一个从一个节点开始的子图,显示所有可能的路径(忽略序列)。但是如何在 neo4j 中显示呢?是否可以在 neo4j 中使用我的遍历器作为标准遍历器?我想避免选择每个节点并查询所有节点(可能是大量节点)。
这样就解决了问题(对于少量节点,将粘贴查询复制到webui中):
但还有其他解决方案吗?
neo4j - 使用遍历框架在 Neo4j 中编码一种随机游走
我目前正在研究一个节点通过概率边连接的图。每条边上的权重定义了边存在的概率。
这是一个示例图,可帮助您入门
我想使用 Neo4j Traversal Framework 从 (A) 开始遍历这个图,并根据沿途找到的边的概率返回已经到达的节点数。
重要的:
- 到达的每个节点只能计算一次。-> 如果(A)到达(B)和(C),那么(C)不需要到达(B)。另一方面,如果 (A) 未能到达 (B) 但到达 (C),则 (C) 将尝试到达 (B)。
- 如果(B)到达(C)也是如此,(C)不会再尝试到达(B)。
- 这是一个离散时间步长函数,一个节点只会尝试到达相邻节点一次。
- 为了测试边是否存在(我们是否遍历它),我们可以生成一个随机数并验证它是否小于边权重。
我已经将遍历描述的一部分编码如下。(这里可以从多个节点开始,但这不是解决问题所必需的。)
我跟踪达到的节点数,如下所示:
这段代码的问题在于,虽然 NODE_PATH 已定义,但可能存在我不想要的循环。
因此,我想知道:
- 是否有解决方案可以避免循环并准确计算达到的节点数量?
- 理想情况下,是否可以(或更好)使用 PathExpander 做同样的事情,如果可以,我该如何进行编码?
谢谢