问题标签 [cypher-3.1]

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

neo4j - Neo4j - shortestPath 不返回路径长度

我试图在 Neo4j 中执行“shortestPath”密码查询,但遇到了一个奇怪的困难。我应该得到“2 个节点”作为最短路径,但是我什么也没得到。

我相信我正在运行最新版本的 Neo4j。这可能是一个问题吗?

问候!

0 投票
2 回答
64 浏览

graph - 为什么在 Neo4j 中通过 CREATE 或 MERGE 查询创建多个节点

Cypher用来在Neo4j. 这是一个非常简单的产品模型,具有以下元素

  1. 产品(例如手机)
  2. 功能(例如快速充电)
  3. 相关产品(例如钢化玻璃)
  4. 奥特莱斯(例如本地商店,相关产品通过奥特莱斯销售)

我写了一些查询来插入数据。它试图做的是

  • 创建产品
  • 创建功能集
  • 将产品与功能 [:HAS_FEATURES] 关联
  • 创建网点 x3
  • 创建相关产品 1
  • 将产品链接到相关产品 [:HAS_RP],并将相关产品链接到所有网点 [:SOLD_THROUGH]
  • 创建相关产品 2
  • 将其链接到上述产品和网点

以下是实际查询

现在的问题是,第二个相关产品被创建了 3 次,而预计它只会被创建一次,就像第一个相关产品一样。

谁能帮我理解我做错了什么?此外,以更好的方式编写查询的任何帮助都会很棒。

在此处输入图像描述

0 投票
1 回答
92 浏览

csv - 如何优化此密码查询以获得更快的结果

the-file-name.csv 是关于上一个问题 How to make the Cypher request to handle这两种情况而不复制节点

在我做的第一步

在这里,我提出了密码查询。

结果 :

设置 28271 个属性,创建 3400 个关系,34985 毫秒后完成。

将 csv 加载到 neo4j db 大约需要 35 秒。请问它在性能方面是否完美?

对于包含 1665 个 csv 行的 csv 文件,每行包含 6 个字段:两个第一个字段用于(区域)第三和第四个(城市),第五个和第六个用于(部门)。

如何优化这个 neo4j 查询,使其只需 3 秒以下的几秒?

下面我放了分析器结果图片。

计划

在这里,我根据 InverseFalcon 的建议进行了更新

对部门 约束的描述添加索引变为

从探查器计划

计划 密码版本:CYPHER 3.4,计划者:COST,运行时:INTERPRETED。175350 总 db hits in 14321 ms****

直接没有 Profiler 创建了 3403 个关系,在 12702 毫秒后完成。

从 36 秒到 12 秒的良好增强,但仍需要优化。

0 投票
1 回答
124 浏览

neo4j - 在 neo4j 中加载 csv 时不要创建所有关系

对所有人都好,请帮我解决这个问题:D

当我执行我的查询时:


我的csv格式如下:

我有 4 个类别、30 个产品和 10 个订阅者创建了我:

添加164个标签,创建164个节点,设置328个属性,创建184个关系,254毫秒后完成。

我通过以下方式验证结果:

MATCH p=()-[r:OF_CATEGORY]->() 返回计数(r)

已创建 23 个关系,但未创建其余 7 个关系。

请指导我查询应该创建的所有关系在这种情况下将是 30 个具有类别的关系产品

0 投票
2 回答
227 浏览

neo4j - Neo4j 密码查询 - 如何获取特定标签数据?

我只想使用密码查询获取客户和供应商的名称和 ID。

如何结合 2 个标签来获取数据?

上面的查询出现语法错误。请指教。

0 投票
3 回答
685 浏览

neo4j - neo4j 查询的复杂性

我需要衡量任何查询的性能。

例如 :

我已经尝试过profile & explain子句,但它们只返回 db hits 的数量。是否有可能为 neo4j 查询获得大符号,即我们根据大 O 符号来衡量性能?除了使用profile & explain之外,还有其他方法可以检查查询性能吗?

0 投票
1 回答
62 浏览

cypher - Geohash 使用 Cypher 从 (level7) 汇总图表 (level 5)?

我正在尝试从现有的 7 级缩放创建一个 5 级缩放的 geohash 图。我尝试了以下代码:

但是在密码中它似乎不是真的,我得到一个例外:

用英语的话,我想要:如果开始节点和结束节点共享相同的 geohash 子字符串,则创建一个具有指向它的关系的节点:

内部关系

否则创建两个节点:

相互关系

注意我正在从事的项目是 CYPHER FOR APACHE SPARK

0 投票
0 回答
24 浏览

cypher - 如何使用 Cypher 将两个不同的 Graph 存储为一个?

对于项目CAPS的后续特征,我需要将 2 个不同的 Graph 存储到一个中:

Graph3=Graph1+Graph2

我试图寻找解决方案来做到这一点,我发现UNION ALL但最后一个没有像我预期的那样工作。有没有另一种方法可以用 Cypher 做到这一点?

例子 :

其中包含此模式:

在此处输入图像描述

其中包含此模式:

在此处输入图像描述

与联合所有:

我得到这张图:

在此处输入图像描述

如您所见,绿色节点是 Graph2 没有关系的节点!那是我没想到的。

0 投票
1 回答
86 浏览

neo4j - Neo4j/Cypher:通过 WITH 传递属性

我发布了一个新问题,因为这是一个单独但与此问题相关的问题:Neo4j: Link Different Nodes to the one node

以下查询返回正确数量的节点。

以下查询忽略 COLLECT 并a为集合中的每个条目创建一个节点,而不是a为每个对创建一个节点。此外,当我移动CREATE外部时,FOREACH我收到以下错误:Type mismatch: expected Any, Map, Node or Relationship but was List<Map>.

示例数据集:

设置 1:(行为:“事件日志”,时间戳:3461000)(行为:“正常运行时间报告”,时间戳:3461000)

设置 2:(行为:“事件日志”,时间戳:149100)(行为:“正常运行时间报告”,时间戳:149100)

期望的结果:

(a {Source: "Event Log" & "UPtime Report", timestamp: 3461000})<-[:LINk]-(act)

(a {来源:“事件日志”和“正常运行时间报告”,时间戳:149100)<-[:LINk]-(行为)

0 投票
1 回答
508 浏览

neo4j - Neo4j/Cypher:提取 StringArray 的最后一项(neo4j 称之为)

假设我有一个带有属性的节点Event,它被分配了一个 StringArray。我正在尝试提取在创建节点时从集合中分配的“6013”和“6005”(有关创建查询代码,请参见下文)并将它们分配给另一个属性。

我尝试使用SPLIT,但它不适用于 neo4j 所指的 StringArray。

Event: ["EventLog/6013", "EventLog/6005"]

创建查询:从集合分配的事件

... WITH act.timestamp as timestamp, COLLECT(DISTINCT act.message) as messages, COLLECT(DISTINCT obt.filename) as filenames, COLLECT(act) as acts CREATE (a{ Event: filenames, Description:messages, timestamp:timestamp}) FOREACH (act in acts | CREATE (act)-[:LINK]->(a))

所需节点:

Event: ["EventLog/6013", "EventLog/6005"] Assinged: [6013, 6005]