问题标签 [redisgraph]

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.

0 投票
1 回答
27 浏览

python - 将一个节点链替换为graphdb中的另一个节点链?像字符串替换

假设我有一个节点链/列表:

我想用另一条节点链替换/替换一个或多个连续节点。

在我看来,实现这一目标的操作数量太多,无法将它们放在单个查询中。

问题是,如果它不是单个查询,那么它会变得更加复杂。

你会怎么做?(必须像字符串替换一样工作)

简化它的一个想法是找到链中的位置并使用索引。

0 投票
3 回答
249 浏览

cypher - Cypher 查询递归遍历家谱?

使用 Cypher 查询图形数据库时,我试图从起始节点向上走一棵树的无限距离,并返回每个节点以及有关该节点关系的信息。

例如,以家谱为例:

在此处输入图像描述

我想从“James”(节点 id 4)开始,并得到一个响应,其中包含每个节点的行以及定义该节点关系的边缘数据。

如果我这样做:

我明白了

在此处输入图像描述

为了摆脱重复的数据,我可以收集一些结果,例如:

给我

在此处输入图像描述

但我仍然只有初始节点。我如何扩展它以包含树上每个节点的这种格式(或类似格式)的行,包括叶节点?

0 投票
1 回答
198 浏览

neo4j - 密码聚合两个不同节点类型之间的公共节点类型

图表视图

  • 我有两种不同类型的节点(redisgraph 中的标签)。图中的蓝色圆圈称为WORKLOAD。黄色的被称为API

  • 在两个工作负载之间,存在关系/边缘ACCESSES_WORKLOAD(由最浅的蓝色/青色边缘表示)。在附加的图像中,front-end工作负载访问userorder工作负载。order工作负载访问user工作负载。

  • API节点和WORKLOAD节点之间存在两种类型的关系/边。一个称为CONTAINS_API(图像中的深蓝色链接),另一个称为ACCESSES_API(图像中的紫色链接)。例如,在附图中,user工作负载包含 8 个API,其中 6 个被消耗front-end(列表:包括3 /customers/.../addresses/register/cards)。剩下的两个APIs 被orders(list:/cards/{cardsId}/addresses/{addressesId}.

  • front-end也访问了工作负载API所包含的三个orders/orders/...

  • 也有可能两个WORKLOADs 之间可能有一条ACCESSES_WORKLOAD边,但它们之间没有任何API共同的节点。

  • 除了边缘之外,AWORKLOAD可能还有一个额外的边缘/关系调用CAUSES_ATTACK到。它在图像中用绿色表示。这可能并不总是存在。在所附图像中,工作负载对 API 具有此优势,但与其他任何s 无关。APIACCESSES_APIfront-end/catalogue/sockAPI

现在我想获取所有工作负载对的列表以及API它们之间的节点的 ID(如果有的话)。我尝试的密码查询是:

我期待的输出如下表:

但我得到的是:

在前两行中,对于user节点,我得到了工作负载API包含的所有 s的列表,user而不仅仅是由andAPI访问的 s 。聚合与查询中的 有边/关系的所有节点,而不是仅与s 的 s 。front-endorderscollect(ID(a))APICONTAINS_APIw2 WORKLOADAPIACCESSES_APIw1 workload

如果为了简洁起见,我将我的期望映射到 JSON,我需要的输出将是:

有人可以帮助修复密码查询吗?我在redisgraphvia中这样做cypher。我不能使用仅 Neo4j 的查询选项/实用程序/帮助程序。谢谢。

0 投票
1 回答
536 浏览

redis - 使用 RedisGraph 查找 2 个节点之间的最短路径

我有带有整数 id 的简单节点。我只想找到给定 id 的节点之间的最短路径。我试过了 :

或带有 algo.BFS 的东西,但没有给出示例

但我没有成功。这个功能可用吗?

0 投票
1 回答
137 浏览

c++ - 未指定目标且未找到生成文件 RedisGraph 在 OS X 上构建

我正在尝试在我的 Macbook Pro 上安装 RedisGraph。我已经克隆了 repo,并在项目目录中运行了make命令,但得到了以下输出。

虽然在 repo 中有一个 Makefile。如果我跑步make Makefile,我仍然会得到

我的 gcc 版本:

我正在按照此文档中的步骤进行操作。任何帮助将不胜感激!不确定它是否与 Clang 的 OS X 版本有关(如果我必须将其更改为不同的版本)。

0 投票
1 回答
50 浏览

cypher - 如何查询图中的补充关系?

我有一个图形数据库,其中每个节点都intersects与其相交的节点有关系。此外,intersects还有一个属性degrees(这两个节点相交的角度)。

我想订购以指定角度与给定节点相交的节点。

由于两个节点之间的交集是补充的,我只保存两个节点之间的一个关系(例如, (a)-[:intersects]->(b) 和 (b)-[:intersects]->(a) 是类似的东西,但两者的角度会有所不同,这个角度是补充的)。例如,如果我需要所有城市以 45 度角与城市 A 相交,则两个查询是:

我想将这两个查询合二为一(避免在客户端库中进行排序)。可以在redis图中做到吗?我打算尝试(a)-[:intersects]-(b)使用这个案例......但似乎对获取 src 节点的支持尚不可用。

任何帮助将非常感激。

0 投票
1 回答
313 浏览

redis - 社交网络的redisgraph

我知道redis图在内存中维护邻接关系矩阵,并且有很多文章提到它只有在您的图适合内存时才适用。

我有兴趣创建一个社交图,其中包含具有不同关系的用户以及每个用户可以发表的其他人可以评论和喜欢的帖子。与任何新应用程序一样,我预计从大约 100k 的少数用户开始(开始时节点和关系更少)并随着时间的推移而增长。

虽然理论上它可以在 RedisGraph 中实现,但我无法判断或解释图的未来增长,也无法知道它是否仍能适应内存并在同一水平上执行。

RedisGraph 适合此类用例还是更适合静态图?

0 投票
1 回答
87 浏览

redisgraph - RedisGraph 中对日期时间数据类型的支持

我想托管一个 datetime 类型的节点属性,并且需要在 cypher 的 where 子句中使用它来根据 datetime 范围过滤和选择节点。

https://oss.redislabs.com/redisgraph/cypher_support/提到不支持日期时间,将其存储为毫秒是否有任何限制或问题?有没有人遇到过这种情况,您是如何解决的?

0 投票
1 回答
215 浏览

redis - redis-graph 和 redis-streams 之间的互操作性

我对这个项目很感兴趣,想了解更多关于 RedisGraph 的内部结构,并寻找 Redis-Streams 和 Redis-Graph 模块之间互操作性的可行性。

因此,我想知道 Redis 的本机数据结构是什么,您构建了自己的“graphdata”数据结构,当我们运行 TYPE myGraph 命令时会显示该数据结构。

  • RedisGraph 模块内部的图(或其子组件、节点、边、路径)是建立在 Redis 的已知数据结构之上的,例如 SETS、LISTS 等。
  • 或者 RedisGraph 在其模块中使用原生的新数据结构。提前感谢您的回答和支持!
0 投票
1 回答
584 浏览

redis - 如果在高流量中不存在,redisgraph 在节点之间创建边缘

我有以下密码查询。

我们有一个actor节点和一个movie节点。actor如果和movie节点之间没有边,ACTED则应创建具有某些边属性的新边。

上述查询在流量不大的空闲数据库中运行良好,通常响应时间不到 1 毫秒。但是,当流量很大时,仅此特定查询就需要很长时间,大约几秒。虽然其他查询完成得很好。

我怀疑缓慢的原因是该COUNT函数试图获取所有节点,并且在不断写入时会以某种方式延迟。我在这里可能是错的,只是做一个假设。

我不需要知道边缘的总数,并且只对边缘是否存在感兴趣。因此,我尝试以不同的方式执行此查询:

但为此,我从redisgraphas 中得到一个错误:

如果一个节点不存在,是否有任何其他方法可以在两个节点之间以最佳方式创建边缘?我不能使用MERGE命令,因为prop2当我必须创建新边缘时,我设置的值将不同。

请注意,这应该在 redisgraph 中有效,如果它适用于 neo4j 或类似的东西,则还不够。