问题标签 [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.
neo4j - Neo4j - shortestPath 不返回路径长度
我试图在 Neo4j 中执行“shortestPath”密码查询,但遇到了一个奇怪的困难。我应该得到“2 个节点”作为最短路径,但是我什么也没得到。
我相信我正在运行最新版本的 Neo4j。这可能是一个问题吗?
问候!
graph - 为什么在 Neo4j 中通过 CREATE 或 MERGE 查询创建多个节点
我Cypher
用来在Neo4j
. 这是一个非常简单的产品模型,具有以下元素
- 产品(例如手机)
- 功能(例如快速充电)
- 相关产品(例如钢化玻璃)
- 奥特莱斯(例如本地商店,相关产品通过奥特莱斯销售)
我写了一些查询来插入数据。它试图做的是
- 创建产品
- 创建功能集
- 将产品与功能 [:HAS_FEATURES] 关联
- 创建网点 x3
- 创建相关产品 1
- 将产品链接到相关产品 [:HAS_RP],并将相关产品链接到所有网点 [:SOLD_THROUGH]
- 创建相关产品 2
- 将其链接到上述产品和网点
以下是实际查询
现在的问题是,第二个相关产品被创建了 3 次,而预计它只会被创建一次,就像第一个相关产品一样。
谁能帮我理解我做错了什么?此外,以更好的方式编写查询的任何帮助都会很棒。
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 秒的良好增强,但仍需要优化。
neo4j - Neo4j 密码查询 - 如何获取特定标签数据?
我只想使用密码查询获取客户和供应商的名称和 ID。
如何结合 2 个标签来获取数据?
上面的查询出现语法错误。请指教。
neo4j - neo4j 查询的复杂性
我需要衡量任何查询的性能。
例如 :
我已经尝试过profile & explain子句,但它们只返回 db hits 的数量。是否有可能为 neo4j 查询获得大符号,即我们根据大 O 符号来衡量性能?除了使用profile & explain之外,还有其他方法可以检查查询性能吗?
cypher - 如何使用 Cypher 将两个不同的 Graph 存储为一个?
对于项目CAPS的后续特征,我需要将 2 个不同的 Graph 存储到一个中:
Graph3=Graph1+Graph2
我试图寻找解决方案来做到这一点,我发现UNION ALL
但最后一个没有像我预期的那样工作。有没有另一种方法可以用 Cypher 做到这一点?
例子 :
其中包含此模式:
其中包含此模式:
与联合所有:
我得到这张图:
如您所见,绿色节点是 Graph2 没有关系的节点!那是我没想到的。
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]-(行为)
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]