问题标签 [neo4jrb]

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 回答
362 浏览

neo4j - 将 neo4j 数据导出到类似于 neo4j 浏览器图的 svg 文件 - 使用 neo4j gem

有没有一种方法可以将 neo4j 数据导出到 svg 输出,就像出现在 neo4j 浏览器上的那样,以便我们可以在应用程序中使用它。

这个问题是关于 rails 中的 neo4j gem 的,也欢迎任何其他建议

0 投票
1 回答
229 浏览

graph - 如何在 Neo4j 图形数据库上使用 Cypher 解决最常见的路径类问题

我们正在使用 neo4j 存储许多人(用户)的学术和专业发展,以便为我们的客户处理和提供其中包含的信息。

例如,他们可能会要求拥有某个文凭(在图形数据库中表示为“<em>Diploma”节点)并在以后从事某项工作(“<em>Job”节点)。

JobDiploma都扮演着类似的角色,作为每个人都可以在他或她的简历中拥有的“一种”步骤(用户与他们没有直接联系)。简历是某个人在某个时间段内举办的职业活动:有一个且只有一个用户与之相关,还有:CONTAINS一个“ Job_or_Diploma ”来帮助对其进行分类。

给定用户的简历通过:LEADS_TO关系相互链接,遵循他们的时间顺序。此继承会返回此用户的整个简历。所以我们有这样的路径:

(u:用户)-[:HAS]->(:Resume)-[:LEADS_TO]->(:Resume)<-[:HAS]-(u)

因此,我们需要解决的问题将变成:在所有具有“ Job_or_Diploma ”节点的路径中,找到start:Diploma节点和end:Job节点之间最流行的路径。

因为我们通过不直接属于“ Job_or_Diploma ”节点,甚至不属于任何单个节点的属性来定义最常见的路径(路径的“流行度”取决于整个路径,因为我们通过关注的用户数量来衡量它它完全),我们很难确定如何找到它。

我们必须面对的另一个陷阱是,2 个“ Job_or_Diploma ”之间实际上没有直接联系: a Resume :LEADS_TO以下Resume在他们的用户的课程中:HAS,并且每个 Resume:CONTAINS一个“ Job_or_Diploma ”的更多,但是那些“ Job_or_Diploma ”有彼此之间没有边缘(参见下面的屏幕截图)。所以我们正在寻找的路径在图中不存在。

因此,问题是:有没有办法找到“ Job_or_Diploma ”的“路径”,或者更确切地说是“继承”,在某个文凭和某个工作之间由最多的用户采取(按时间顺序)?理想情况下,我们寻找可以仅使用 Cypher 实现的东西。

我们很高兴收到任何见解,向我们展示如何进行。下面是我们图表的某些部分的几个屏幕,这些屏幕隐含在这个问题中:

我们在这个问题中处理的配置类型

2 个用户在工程文凭和管理职位之间的简历

4 个用户的长度 - 2工程文凭和技术总监职位之间的简历路径

预先感谢您的帮助!

0 投票
1 回答
102 浏览

ruby-on-rails - Neo4j 急切加载 ActiveRel

我正在尝试获取可能仅与特定用户相关的特定关键字并返回关系。

假设我们与用户 100 只有一个关系,用关键字'key2'标记,期望的结果是 {100 => ['key2'] }

上面的代码有效,但对于每个rel它都对数据库执行 2 次查询;一为rel.to_node一为rel.from_node

我希望有一个“急切加载”的解决方案rel.from_noderel.to_node因此整个代码段只会执行一个查询。

(另一种解决方案是为每个关键字运行并获取它的标记用户,但这也需要许多查询。)

0 投票
1 回答
29 浏览

ruby-on-rails - 查询序列化属性不起作用

我想查询 neo4jrb 中的序列化字段或属性,但不工作。

我有一个数组类型的序列化属性,如下所示:

我要查询

并且返回[],但我有一个带有[1,2]坐标的东西。

问这个问题的方法是什么?

0 投票
1 回答
442 浏览

ruby-on-rails - 如何将我与 Neo4j 的连接指定为 K8s 中的领导角色

我通过这个helm chart在 K8s 中部署了一个 3 核(默认情况下)Neo4j 。我是neo4j的新手。

我在 Ruby on Rails 项目中使用neo4jrb 。

当我尝试连接 neo4j 服务写入数据时。我经常(并非总是)遇到这个错误

我阅读了这篇文章Querying Neo4j Clusters。然后我意识到舵图创建了一个领导者和两个追随者核心。在密码外壳中,当我运行时

我有

LEADER因此,当我尝试写入数据时,我应该连接到。而且我知道集群不能leader永久存在。如果电流leader下降,那么follower将成为一个新的leader

我曾经认为bolt+routing因果集群可能是解决我的问题的简单方法。当我回到 ruby​​ 客户端时,我发现它bolt+routing现在不支持。

我现在该怎么办?我无法配置 LoadBalancer。我有权为 Ingress 编写配置。

0 投票
0 回答
30 浏览

ruby-on-rails - Neo4jrb 关于调用关系的继承和作用域问题

我正在将 Neo4jrb 与 Rails 一起使用,并且我正在尝试尽可能多地利用 QueryProxy 链接方法来构建复杂的查询,但是在考虑具有多个标签的节点时由于继承而被卡住了。以下原始示例可以给您和想法:

一个简单的工作查询是获取/查询一个人的 Facebook 帐户的名称:

返回以下密码查询:

因此,查询Person 关系中指定的 model_class 的派生类(Facebook)的属性时似乎没有错误。

但是,当我尝试查询Facebook 中定义的关系时,activegraph 找不到它并返回以下错误:

问题:

  • 为什么我可以查询Person 关系中model_class上指定的派生类的属性,但无法查询其关系
  • 有没有办法查询派生类关系?或者可能暂时改变范围?
  • 有没有办法指定关联结束节点的标签?比如,当我查询Person.socials时,我可以为 AssociationProxy Person#social 定义除“社交”之外的结束标签吗?

我已经尝试过一些方法,如“范围”、“分支”和“as_models”,但据我所知,它们都不起作用。

注意:以下密码查询有效:

0 投票
0 回答
25 浏览

ruby - Neo4jrb 使用 QueryProxy 和 AssociationProxy 查询关系属性

我想知道是否可以在关联链期间查询关系的属性。下面的例子可以帮助你理解:

我的目标是做这样的事情:

据我所知,Person.socials返回一个AssociationProxyPerson.socials.where(followers_count: 100)我可以查询与 Followers_count = 100 的人相关的社交节点,但是我无法查询将人链接到社交的关系。在 Cypher 方面,我想做类似的事情:

我想指定我有兴趣通过 QueryProxy 和 AssociationProxy 进行链接,我不需要 Cypher 查询字符串('MATCH (n:Person) ..')。以下可能是一个很好的方法

但我的查询应该尽可能动态,所以我想避免两者:

  • 显式变量命名,如示例中的 :s 和 :rel
  • where 子句中的字符串查询