通过图数据库 Neo4J 建立疫情行动轨迹及接触关系图

2023-11-05

最近疫情反复,我被为拜托建一张“某某行动轨迹及接触关系图”。

这类行动轨迹或接触关系,可以抽象成网或者图,从这类图结构立刻就会联想到图数据库Neo4J,正好并没有在公司电脑上安装和使用过Neo4J,于是在这里简单记录下,整个过程还是非常简单的,10min之内即可搞定。

Neo4J 安装 & 启动

选择通过docker镜像进行安装,首先打开 DockerHub,搜索Neo4J。
在这里插入图片描述
这里选择最新版本即可,拉取镜像 docker pull neo4j

$ docker image ls neo4j
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
neo4j        latest    cbd9c9af52a3   13 days ago   568MB

待镜像拉取完毕后,即可启动Neo4J

docker run -it -d -p 7474:7474 -p 7687:7687 --volume=$HOME/neo4j/data:/data neo4j

此时就可以顺利打开Neo4J的web console了 http://localhost:7474/browser
在这里插入图片描述

Neo4J 节点 & 边

图(Graph)中最重要的就是节点和边,让我们先来创建节点:

在“行动轨迹&接触关系”这个场景中,有两类节点,一类是”地点“,一类是”人“

CREATE (西二旗:Location {title:'西二旗地铁站'})

CREATE (张三:Person {name:'张三'}) #此时满脑子都是罗老师 哈哈
CREATE (李四:Person {name:'李四'})
CREATE (王五:Person {name:'王五'})
CREATE (刘六:Person {name:'刘六'})
CREATE (赵七:Person {name:'赵七'})
CREATE (周八:Person {name:'周八'})

在这里插入图片描述
节点有了,建立关联关系:

CREATE
(张三)-[:工作]->(西二旗),
(李四)-[:乘车]->(西二旗),
(王五)-[:乘车]->(西二旗),
(刘六)-[:乘车]->(西二旗)

CREATE (和合谷:Location {title:'和合谷'}),
(张三)-[:就餐 {roles:['消费者']}]->(和合谷),
(王五)-[:就餐 {roles:['消费者']}]->(和合谷),
(周八)-[:就餐 {roles:['消费者']}]->(和合谷)

CREATE (软件园:Location {title:'软件园'}),
(王五)-[:工作 {roles:['社畜']}]->(软件园),
(赵七)-[:工作 {roles:['社畜']}]->(软件园)

CREATE (电影院:Location {title:'电影院'}),
(周八)-[:观影 {roles:['消费者']}]->(电影院)

在这里插入图片描述
此时图和边都建立好了,就可以进行搜索,让我们看一下张三都去过哪些地方 MATCH (三 {name: "张三"}) RETURN 三
在这里插入图片描述
然后以张三为起点查看所有关联关系
在这里插入图片描述

至此,一张“某某行动轨迹 & 接触关系图”创建完毕。

可见,工欲善其事必先利其器,图数据库可以很好的解决此类问题;除此之外,图数据库也广泛应用在风控、社交、推荐等领域。

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

通过图数据库 Neo4J 建立疫情行动轨迹及接触关系图 的相关文章

  • Neo4j - 按相关性排序

    我想按 Neo4j 中的相关性对返回的数据进行排序 就我的目的而言 相关性可以简化为 我正在搜索的单词的索引 其中索引越低 相关性越高 Example 我有这三个节点 node Label PROD properties name Bear
  • Java 中 Cypher 查询的结果检索速度慢 - Neo4j 2.0

    我的结果检索速度出奇地慢ResourceIterator
  • Neo4j Cypher:仅当结束节点存在时才创建关系

    对于以下 Cypher 语句 start n node types id typeId g node groups id groupId create unique n lt has type unit props has group gt
  • 找不到 Spring MVC Neo4jConfiguration 类

    我正在学习 Spring MVC 我想扩展 Neo4jConfiguration 类 但它不可用 我导入了以下依赖项
  • neo4j中如何删除多个节点

    如何在neo4j中删除多个节点 不是全部 我有这个查询MATCH n where n name IS NULL delete n 它返回多个节点 我想删除所有这些节点 所有节点 这些节点是错误创建的 这就是为什么变成空 我面临的错误是 ja
  • 无法将 Neo4j GORM 插件添加到 Grails 项目

    我想在我的 Grails 项目中使用 Neo4j 图形数据库 我创建了一个新的 Grails 项目 我使用的是 Intellij Ultimate Edition 该应用程序运行良好 当我尝试在 BuildConfig groovy 中添加
  • Neo4j cpu 卡在 GC 上

    突然间 工作了一个月后 CPU 几乎没有使用 1 到 5 之间 neo4j 服务器在垃圾收集时 cpu 占用率达到 100 我在 ubuntu 4 处理器服务器上运行 neo4j entherprise 2 0 3 未嵌入 这是我的 neo
  • Cypher 查询 JSON 格式的结果

    在演员 电影演示图上 cypher 在单独的数组中返回列名称 MATCH n Person RETURN n name as Name n born as Born ORDER BY n born LIMIT 5 results colum
  • 如何从 py2neo 获取自动节点 ID?

    我正在使用 py2neo 3 1 2 版本和 Neo4j 3 2 0 我有一个问题 在 Neo4J 的 Web 界面上 我可以运行以下查询来获取节点 id MATCH n Person RETURN ID n 我想知道 py2neo API
  • 使用 py2neo 在 neo4j 上查询写入性能

    目前 我正在努力寻找一种高性能的方法 使用 py2neo 运行多个查询 我的问题是 python 中有一大堆需要写入 neo4j 的写入查询 我现在尝试了多种方法来解决这个问题 对我来说最好的工作方法如下 from py2neo impor
  • 一起使用 MongoDB 和 Neo4j

    我正在开始一个新项目 我正在考虑使用 MongoDB 作为文档存储工具 使用 Neo4j 作为映射文档之间关系的机制 然后我想通过 REST API 公开查询结果 人们会说这样做的优点和缺点是什么 是否有更好的方法可以使用不同的 NoSQL
  • Neo4j 的数据库级验证

    我使用 Neo4j 作为我的图形数据库 假设我想限制用户名字段的长度小于10 有没有办法在数据库级别施加这样的约束 现在 您必须在应用程序级别上执行此操作 或者通过注册一个事务提交挂钩来检查该属性字段是否符合特定标准 See http do
  • Neo4j - 计算带有标签的节点

    我想要一个查询来计算数据集中有多少个节点具有每个标签 例如 标签A 100 标签B 200 我可以为每个单独的标签执行此操作 例如 MATCH n LabelA return count n 但是 我想在一个命令中为每个标签执行此操作 尝试
  • spring data neo4j 5 - 没有名为“sessionFactory”的bean可用

    我正在使用 spring data neo4j 5 0 7 RELEASE 和 spring 5 0 6 RELEASE 使用文档中的配置https github com spring projects spring data neo4j
  • Neo4j 2.0 唯一约束错误“节点已存在”,当它不存在时

    我在 Neo4j 唯一约束方面遇到了一些麻烦 其中 CREATE cypher 语句由于节点已经存在而无法执行 问题是 它不 存在 此外 昨天使用这些确切数据的精确流程也有效 我的neo4j版本是ubuntu 12 04 3上的commun
  • 通过 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 作为数据库的社交游戏应用程序 我的问题是 如果我想创建一个积分和徽章系统 有哪些建议 成就 徽章的业务逻辑可能会变得非常复杂并且非常临时 因此实时授予徽章似乎效率不高 我想象将跟踪的操作添加到队列中的某处
  • 如何禁用 Spring Data Neo4j 的登录

    我从 spring neo4j 收到不需要的查询日志 如下所示 25 08 2018 23 47 07 597 restartedMain INFO o n o d bolt request BoltRequest executeReque
  • 使用java将数据从Neo4j导出到csv

    将数据从 Neo4j 导出到 CSV 的最佳方法是什么 我已使用链接中的 CSV 导入器将数据从 csv 导入到 neo4jhttps github com sroycode neo4j import https github com sr
  • Neo4j - 根据关系属性查找两个节点之间的最短路径

    我试图弄清楚是否有某种方法可以根据关系总和获得两个节点之间的最短距离 给出以下示例 neo4j 图像示例 https i stack imgur com fiJe1 png 上图代码 CREATE some point 1 Point ti

随机推荐

  • ai怎么做盒子效果图_AI做局部放大效果图

    前言 局部放大效果图是我们实验中比较常见的 是为了将更小的部分进行放大观察 这种图使用Ps和Ai都可以做 不难 在AI里主要涉及到了剪切蒙版的设置 使用圆形线圈对图进行剪切 放大就可以了 那么我们今天来看一下 这种图怎么做 软件 Adobe
  • 对Kalman(卡尔曼)滤波器的理解

    分类 计算机视觉 转载过来的 觉得不错 原文 http blog csdn net lanbing510 article details 8828109 1 简介 Brief Introduction 在学习卡尔曼滤波器之前 首先看看为什么
  • linux内核互斥锁,linux内核锁机制 - 全文

    在现代操作系统里 同一时间可能有多个内核执行流在执行 因此内核其实象多进程多线程编程一样也需要一些同步机制来同步各执行单元对共享数据的访问 尤其是在多处理器系统上 更需要一些同步机制来同步不同处理器上的执行单元对共享的数据的访问 在主流的L
  • bootstrap与application对比

    用过 Spring Boot 的都知道在 Spring Boot 中有以下两种配置文件 bootstrap yml 或者 properties application yml 或者 properties 为什么会有这两种配置文件呢 大家都清
  • QPSK调制器

    早在本世纪初人们就了解通讯的重要性 从电子时代初期开始 随着技术的不断发展 本地通讯与全球通讯的之间壁垒被打破 从而导致我们世界变得越来越小 人们分享知识和信息也更加容易 贝尔和马可尼可谓通讯事业的鼻祖 他们所完成的开拓性工作不仅为现代信息
  • ViewPager中的fragment内容不显示,无报错问题解决

    背景 楼主在做一个fragment切换的时候 用viewpager来做切换的动画 将需要去切换的fragmentA fragmentB加入到fragmentAdapter中后 页面没有显示出来fragmentA或者fragmentB的内容
  • 使用机器学习做DGA域名识别

    DGA域名 域名生成算法 Domain Generation Algorithm DGA 是一项古老但一直活跃的技术 是中心结构僵尸网络赖以生存的关键武器 该技术给打击和关闭该类型僵尸网络造成了不小的麻烦 研究人员需要快速掌握域名生成算法和
  • CountDownLatch 用法和详解

    CountDownLatch 是多线程控制的一种工具 它被称为 门阀 计数器或者 闭锁 这个工具经常用来用来协调多个线程之间的同步 或者说起到线程之间的通信 而不是用作互斥的作用 下面我们就来一起认识一下 CountDownLatch 认识
  • 深度学习------不同方法实现Inception-10

    本博客通过tensorflow实现inception10模型 对于inception10模型有不同的写法 包括 sequence模型 类封装 自定义函数 而本博客主要通过自定义函数和类封装实现inception10 代码和模块图如下 inc
  • 基于echarts 做的男女比例

    data数据 maleToFemaleRatio FemaleNumber 28417 FemaleRadio 45 17 MaleNumber 34491 MaleRadio 54 83 完整代码 var myChart echarts
  • 面试题 04.02. 最小高度树

    面试题 04 02 最小高度树 给定一个有序整数数组 元素各不相同且按升序排列 编写一个算法 创建一棵高度最小的二叉搜索树 示例 给定有序数组 10 3 0 5 9 一个可能的答案是 0 3 9 10 null 5 它可以表示下面这个高度平
  • 在ch32v307单片机上移植LUA

    下载lua源代码 先到官网下载lua源代码 http www lua org 然后解压出源码 源码移植 这里基于官方例程中的串口例程进行移植 USART Printf例程 使用MounRiver Studio该工程 然后添加lua源码 需要
  • 说说对 Node 中的 Buffer 的理解?应用场景?

    一 是什么 在Node应用中 需要处理网络协议 操作数据库 处理图片 接收上传文件等 在网络流和文件的操作中 要处理大量二进制数据 而Buffer就是在内存中开辟一片区域 初次初始化为8KB 用来存放二进制数据 在上述操作中都会存在数据流动
  • Android Studio 安装 SDK 失败

    https blog csdn net zdw wym article details 74942772 utm source tuicool utm medium referral
  • 计算机端口详解

    计算机端口详解 一 摘要 端口是个网络应用中很重要的东西 相当于 门 了 二 什么是端口 在 Internet上 各主机间通过TCP TP协议发送和接收数据报 各个数据报根据其目的主机的ip地址来进行互联网络中的路由选择 可见 把数据报顺
  • 【C语言】如何只打印小数的有效数字位数且不补0

    我们时常会碰到使用printf打印小数但只想显示该小数有有效数字的小数位数 这时使用float或者double类型打印时往往会出现以下情况 但是如果我们不想打印39 5之后的小数 那么就需要将c语言中printf语句中的 f 表示十进制浮点
  • pipreqs——快捷生成一个Python项目的依赖模块requirements.txt

    依赖模块文件快捷生成requirements txt 解决代码复用过程中 低效环境配置的问题 使用步骤 1 安装pipreqs pip install i https pypi tuna tsinghua edu cn simple pip
  • Tomcat的优化

    Tomcat作为一款常用的web容器 对其进行优化是提升性能的重要手段 对其进行优化可以从以下方面入手 调整内存 调整线程池 Executor 调整连接器 Connector 调整运行模式 调整内存 如果内存设置过小 极有可能导致项目无法启
  • 头条移动端项目Day07 —— app端文章搜索

    作者主页 欢迎来到我的技术博客 个人介绍 大家好 本人热衷于Java后端开发 欢迎来交流学习哦 如果文章对您有帮助 记得关注 点赞 收藏 评论 您的支持将是我创作的动力 让我们一起加油进步吧 文章目录 app端文章搜索 1 本章内容介绍 1
  • 通过图数据库 Neo4J 建立疫情行动轨迹及接触关系图

    最近疫情反复 我被为拜托建一张 某某行动轨迹及接触关系图 这类行动轨迹或接触关系 可以抽象成网或者图 从这类图结构立刻就会联想到图数据库Neo4J 正好并没有在公司电脑上安装和使用过Neo4J 于是在这里简单记录下 整个过程还是非常简单的