在 Neo4J Cypher 2.0 中创建多个节点/边时发出一个 MERGE 请求更好,还是将其拆分为事务更好?

2024-03-16

我有一个很长的 Cypher 查询(新的 Neo4J 2.0 版本),它使用 MERGE 命令创建多个节点和连接。

问题是:您认为我最好将其分成不同的部分并将其作为交易提交(为了稳健性),还是应该保留长的单个交易(为了速度)?

这是查询:

MATCH (u:User {name: "User"}) MERGE (tag1:Hashtag {name:"tag1"}) MERGE (tag2:Hashtag    
{name:"tag2"}) MERGE (tag3:Hashtag {name:"tag3"}) MERGE (tag4:Hashtag {name:"tag4"}) 
MERGE tag1-[:BY]->u MERGE tag2-[:BY]->u MERGE tag3-[:BY]->u MERGE tag4-[:BY]->u;

(我故意缩短请求,假设有大约 50 个标签(节点),甚至更多的边)


只要您的查询语句不超过数百行,并且创建的数据不超过 50k 个元素,我就会坚持使用一个查询。

但你应该使用参数来代替。

我还会用 foreach 和参数重写您的查询

MATCH (u:User {name: {userName}) 
FOREACH (tagName in {tags} | 
    MERGE (tag:Hashtag {name:tagName}) 
    MERGE (tag)-[:BY]->(u)
)

params:

{userName:"User", tags: ["tag1",...,"tagN"]}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Neo4J Cypher 2.0 中创建多个节点/边时发出一个 MERGE 请求更好,还是将其拆分为事务更好? 的相关文章

  • Neo4j 客户端使用“DateTime?”展开

    我目前正在尝试展开具有 日期时间 的 TravelEdges 列表 但我不断收到以下错误 CypherTypeException 类型不匹配 需要一个地图 但是字符串 2018 05 21T08 38 00 我目前正在使用最新版本的 neo
  • 将最短路径中的所有节点作为对象列表返回

    我有以下 Cypher 查询 它在 Neo4j 2 0 0 中运行良好 MATCH ab Point Latitude 24 96325 Longitude 67 11343 cd Point Latitude 24 95873 Longi
  • plesk 上的 docker 中的 Neo4j(3.4.17、3.5.13、4.0.0)不使用 /ssl 中提供的 SSL 证书,而是尝试删除它们并进行自己的自签名

    此配置在某些时候对我有用 但由于没有启用自动续订 在短暂的 VPS 暂停后就停止了 根据文档 我在一个文件夹中提供了 neo4j cert 和 neo4j key 然后将其安装在 ssl 的容器上 不幸的是 neo4j 将停留在 清理自生成
  • 如何删除neo4j中的所有索引?

    我想使用 cypher 批量删除所有存在的索引 可以吗 我正在使用 neo4j 3 4 7 DROP INDEX ON Label attributename 如果我在稍后阶段创建相同的索引 它会替换现有索引吗 删除所有索引和约束的快速方法
  • Neo4j.rb 创建独特的关系

    这是我的 Neo4j 活动节点 class User include Neo4j ActiveNode has many out following type following model class User end john User
  • 在 Neo4j 中可视化连接的组件

    我可以使用下面的代码找到图中最密集连接的组件 CALL algo unionFind stream pnHours YIELD nodeId setId groupBy setId storing all node ids of the s
  • Neo4j 入门

    我对 neo4j 完全陌生 很抱歉问这样一个基本问题 我已经安装了 neo4j 我正在使用 shell localhost 7474 webadmin console 我正在寻找一个很好的示例 它使用一些 shell 命令从预先存在的图形数
  • 通过 awselb 使用 ssl 时的 neo4j java 驱动程序问题

    I am using neo4j community version 3 1 1 and enterprise edition version 3 0 1 with ssl configured through awselb To conn
  • 如何使用 nosql 构建成就和徽章

    我目前有一个使用 mongodb 作为数据库的社交游戏应用程序 我的问题是 如果我想创建一个积分和徽章系统 有哪些建议 成就 徽章的业务逻辑可能会变得非常复杂并且非常临时 因此实时授予徽章似乎效率不高 我想象将跟踪的操作添加到队列中的某处
  • 使用 neo4j 建模有序树

    我刚刚开始使用 neo4j 并且了解图形和关系的原理 但是我在想要建模的某些结构方面遇到了一些麻烦 我想在编程语言项目中使用它 并存储已解析源文件的 AST 从那里 我计划向节点添加大量额外的数据和关系 以帮助分析和工具 但基本的 AST
  • Neo4j 在 Cypher 查询运行中仅使用一个核心

    当我在 UI 中运行 Cypher 查询时 服务器中只有一个核心正在运行 查询会卡住或响应非常慢 我使用 Neo4j 3 0 7 社区 有人知道我可以使用所有核心进行哪些调整吗 单个 Cypher 查询仅限于单个线程 看到这个tweet h
  • 同时运行 Gremlin-Server 和 NEO4J Server

    目前看来我们不能同时运行两者Neo4J服务器 and Gremlin服务器同时 有什么办法可以同时运行两者吗 NEO4J 正在运行 我尝试启动 Gremlin Server 然后出现以下错误 java lang RuntimeExcepti
  • 如何从 Neo4j 服务器插件登录?

    我正在尝试调试我正在编写的 Neo4J 服务器插件中的问题 有可以输出的日志吗 在哪里或如何执行此操作并不明显 好问题 我想你可以使用 Java 日志记录吗 这应该被路由到正常的日志系统中
  • Cypher:从集合中提取唯一值

    I have MATCH x rels gt y RETURN extract r in rels r property as collected where collected是路径上所有关系的属性的集合 例如 null 4 null 4
  • 如何在 Gremlin 中查找公共顶点数并对结果进行排序?

    我的架构有两种类型的节点 node1 学生 id为主键 节点2 技能 技能名称为主键 他们之间的关系是HAS SKILL 我的用例 对于给定的学生 Id 我需要获取技能最匹配的相似用户 技能计数和常用技能列表 我尝试过的查询 g V has
  • org.neo4j.kernel.GraphDatabaseQueryService 无依赖满足接口

    我只是编写一个简单的程序 将 GTFS 文件上传到 Neo4j Spatial 我相信这是一些配置错误或 Neo4j spatial 库的一些问题 这就是为什么我没有上传我的代码 这是指定的非常基本的代码here https github
  • Neo4j:基于聚合函数过滤节点

    假设我有一个客户节点列表和每个客户下的订单列表 表示为与这些客户节点关联的订单节点 每个订单都有一个与其关联的成本数字属性 我想返回那些平均订单大于阈值的客户 这是一些无法运行的代码 说明了我想要的内容 MATCH n0 Customer
  • Cypher Linked List:如何按索引取消移位和替换

    我正在尝试按照此处的推荐使用 Neo Cypher 创建链表结构 创建时CYPHER存储相同标签的节点关系顺序 https stackoverflow com questions 33263822 cypher store order of
  • SET label : 将标签名称作为参数传递

    我有一个这样的查询 将 data 展开为行 MERGE p Book guid row bookGuid set p name row name p Science 我想传递标签 科学 作为参数 因为该标签对于我在 data 中传递的所有行
  • 没有 Neo4Django 的 Django 和 Neo4j

    我正在使用 Neo4j 以及 Postgres 构建一个 Django 应用程序 我发现这个 Django 集成称为新4django https github com scholrly neo4django 我想知道是否可以只使用neo4r

随机推荐

  • PL/SQL 在整个数据库中搜索字符串

    这不仅仅是一个问题 它还是一个信息共享帖子 我今天遇到一个情况我需要在应用程序的整个数据库中寻找一个刺痛 但不知道它属于哪个表 列 下面是我编写并用于帮助我提出建议的 PL SQL 块 希望它能帮助其他有类似需求的人 Declare i N
  • 如何远程访问Spring-boot JMX

    我知道 spring 自动公开 JMX beans 我能够使用 VisualVM 在本地访问它 但是在产品上我如何使用它的 JMX beans 远程连接到应用程序 是否有默认端口或者我应该另外定义什么 谢谢 射线 默认情况下 JMX 可在本
  • -m32 选项不适用于 gcc,但适用于 g++

    我试图在 x86 64 ubuntu 12 04 机器上编译 32 位目标的应用程序 我使用安装了所需的包 sudo apt get install gcc multilib g multilib libc6 i386 libc6 dev
  • 错误:安装 ruby​​-debug-ide

    事实上 我是 ruby on Rails 开发的新手 并不是说我无法在 aptana studio 3 上安装 gem install ruby debug ide gem install ruby debug ide Temporaril
  • 声纳:“关闭这个PreparedStatement”

    Why is 声纳Qube http docs sonarqube org 如果我在finally块中关闭它 Jenkins的插件会抱怨打开的语句 我需要在单独的函数中验证数据库连接 final String PING SELECT 1 f
  • Hamcrest Matchers 包含匹配器列表

    我正在尝试使用org hamcrest Matchers contains java util List gt http hamcrest org JavaHamcrest javadoc 1 3 org hamcrest Matchers
  • 以编程方式将 UILabels 和 UIImageViews 添加到 UIScrollView

    我知道这个问题在这里经常出现 但我似乎仍然无法让它发挥作用 我可能没有正确启动视图或其他 无论如何 我正在尝试以编程方式向 UIScrollView 添加多个标签和图像 这是我的 h 文件的代码 import
  • ggplot2 中缺少功能区

    我似乎在 ggplot2 中设置功能区显示时遇到问题 这是一个组成的数据集 Estimate lt c 100 125 150 175 GlobalDFData lt data frame Estimate Upper Estimate 2
  • JavaScript 大括号参数作为函数参数[重复]

    这个问题在这里已经有答案了 我对 javascript 不太熟悉 并且有一个关于函数参数周围使用大括号的问题 因为它不是 JSON 结构 我正在学习核js 我找到了一些代码作为示例 但我不太明白 为什么 产品 在大括号中 addToCart
  • 串行执行单元测试(而不是并行)

    我正在尝试对我编写的 WCF 主机管理引擎进行单元测试 该引擎基本上根据配置动态创建 ServiceHost 实例 这使我们能够动态地重新配置哪些服务可用 而无需在添加新服务或删除旧服务时关闭所有服务并重新启动它们 然而 由于 Servic
  • GCC Linker:如何在输出部分生成每个文件贡献的报告

    最近我在尝试链接我的程序时遇到了一个问题 它报告 text无法放入指定的内存区域 显然 源代码变得太大而无法在有限的内存区域中链接 我现在要做的是分析哪个文件对 text 部分贡献最大 以便进行后续代码优化 我尝试了很多方法但没有成功 nm
  • 飞镖向下转型

    我需要在 dart 中进行向下转换 例如可以从Object to int 但我无法用我自己的课程来做到这一点 难道我做错了什么 或者正确的方法是怎样做的 class Person final String name final int ag
  • 我如何模拟 JodaTime 实际日期?

    我想测试一下这个方法 public FirmOrder findActiveByModelColor ModelColor modelColor Query query em createQuery FROM FirmOrder fo WH
  • 将 bootstrap select2 与 JqGrid 表单一起使用

    我正在尝试使用 jqgrid 形式实现 bootstrap select2 但似乎可以正确执行 在 jqgrid 声明的 colmodel 上我有 name staff index staff width 31 formoptions el
  • SoapUI 更改端点地址

    我想更改端点地址 但它给了我定义的值 我的意思是 只有一个值 我尝试在那里写 但它不起作用 它不可编辑 我怎样才能改变它 查看请求窗口并展开包含端点地址的选择框 你应该看到这样的东西 edit current add new endpoin
  • xml 模式中是否有任何方法可以让 xml 元素中的属性始终大于另一个属性?

    这里是xml
  • 发送器停止后让接收器继续运行

    我正在使用一个基于 Google 的简单接收器CastHelloText 示例应用程序 https github com googlecast CastHelloText chrome 当发送者断开连接时 我想允许接收者继续显示 我认为这可
  • Python 网络服务

    我正在做类似于 Ubuntu Landscape 的服务器 客户端应用程序 http www canonical com enterprise services ubuntu advantage landscape http www can
  • 如何在 XML 中表示列表数据

    我正在为我当前的用例设计 XML 文档 我的用例是 给定一个 id 我可以获得检查分数 天赋分数和类别数量 每个类别都会有类别ID 检查分数和天赋分数 所以假设如果我有两个 id 那么上面的数据将存在于两个 id 中 例如 下面是我基于单个
  • 在 Neo4J Cypher 2.0 中创建多个节点/边时发出一个 MERGE 请求更好,还是将其拆分为事务更好?

    我有一个很长的 Cypher 查询 新的 Neo4J 2 0 版本 它使用 MERGE 命令创建多个节点和连接 问题是 您认为我最好将其分成不同的部分并将其作为交易提交 为了稳健性 还是应该保留长的单个交易 为了速度 这是查询 MATCH