Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >以图搜图-【案例】将图搜结果转换为虚拟图之后输出

以图搜图-【案例】将图搜结果转换为虚拟图之后输出

作者头像
马超的博客
发布于 2022-07-04 06:43:04
发布于 2022-07-04 06:43:04
57900
代码可运行
举报
文章被收录于专栏:马超的博客马超的博客
运行总次数:0
代码可运行

@TOC[1] Here's the table of contents:

•将图搜结果转换为虚拟图之后输出

•1.1 CYPHER语句

•1.2 执行结果

•1.3 参考链接

将图搜结果转换为虚拟图之后输出

CYPHER语句

•提取图结构并以图搜图将结果转换为虚拟图

创建一个多环路子图并抽取其图结构匹配其它相似子图之后生成虚拟图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CREATE (n1:公司) SET n1.name='公司' WITH n1
CREATE (n2:公司) SET n2.name='公司' WITH n1,n2
CREATE (n3:公司) SET n3.name='公司' WITH n1,n2,n3
CREATE (n4:行业) SET n4.name='行业' WITH n1,n2,n3,n4
CREATE p1=(n1)-[:持股]->(n2) WITH n1,n2,n3,n4,p1
CREATE p2=(n1)-[:担保]->(n2) WITH n1,n2,n3,n4,p1,p2
CREATE p3=(n1)-[:属于]->(n4) WITH n1,n2,n3,n4,p1,p2,p3
CREATE p4=(n1)-[:持股]->(n3) WITH n1,n2,n3,n4,p1,p2,p3,p4
CREATE p5=(n2)-[:持股]->(n3) WITH n1,n2,n3,n4,p1,p2,p3,p4,p5
CREATE p6=(n3)-[:属于]->(n4) WITH n1,n2,n3,n4,p1,p2,p3,p4,p5,p6
CREATE p7=(n2)-[:担保]->(n3) WITH n1,n2,n3,n4,p1,p2,p3,p4,p5,p6,p7
CREATE p8=(n1)-[:担保]->(n3) WITH n1,n2,n3,n4,p1,p2,p3,p4,p5,p6,p7,p8
WITH olab.convert.json([p1,p2,p3,p4,p5,p6,p7,p8]) AS json
WITH olab.schema.auto.cypher(json,-1,10) AS cypher
CALL apoc.cypher.run(cypher,{}) YIELD value WITH value.graph.graph AS paths
UNWIND paths AS path
WITH RELATIONSHIPS(path) AS rels
UNWIND rels AS r
// 生成虚拟图并将指标占位符转换为JSON-STRING
CALL olab.schema.loop.vpath(r,-1) YIELD from,rel,to RETURN (from)-[rel]->(to) AS path

CYPHER执行结果

•执行结果

注意看生成的虚拟图节点还有关系ID全部为负数。虚拟图表示将查询结果生成为一个物理存储中不存储在的图,例如将虚拟图挂上指标数据之后返回给数据分析系统实现三维和二维数据的集成。其中三维主要指图数据,二维指关系数据库、ES或者其它存储系统。在图模型建模中一般将时间序列建模为图模型指标更方便理解和查询操作,指标数据主要存储在二维存储中,图结构主要存储在图数据库中。生成虚拟图这个结果集可以提供给后续更多数据分析应用使用。

参考链接

ONgDB图数据库存储过程插件ongdb-lab-apoc[2]

References

[1] TOC: 以图搜图-【案例】将图搜结果转换为虚拟图之后输出 [2] ONgDB图数据库存储过程插件ongdb-lab-apoc: https://github.com/ongdb-contrib/ongdb-lab-apoc/wiki

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 马超的博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
用递归法把二叉树的叶子结点按从左到右的顺序连成一个单链表
一、例子 1.png 上图中的二叉树的叶子结点,按从左到右的顺序连成的单链表如下图所示: 2.png 二、定义数据结构 typedef struct tree { int data;
海天一树
2018/04/24
1.8K0
用递归法把二叉树的叶子结点按从左到右的顺序连成一个单链表
以图搜图-自动生成图模式匹配Cypher
•生成JSON->从CYPHER直接生成JSON【支持节点转换/属性转换/路径转换】
马超的博客
2022/07/04
1.5K0
以图搜图-自动生成图模式匹配Cypher
用户行为分析模型——路径分析(一)
这里多渠道指的是,单渠道多节点的场景比较好理解,就是进入某个web \ 小程序,在不同页面之间进行跳转,多渠道这里比较多的就是,同一用户在不同的较大的场景下的流转,比如在小红书种草 -> 微信好友推荐 -> 淘宝上买了。
悟乙己
2021/12/07
3.4K0
用户行为分析模型——路径分析(一)
图形数据库之Neo4j学习(一)
最近工作需要使用图形数据库来构建知识图谱,目前基于Java使用最广泛的有两个开源框架 (1) neo4j 社区版 免费 企业版 收费 (2) Titan 全开源 我们此次选择了neo4j的社区版,主要是项目紧,neo4j比较稳定,Titan可能比较新,虽然Titan肯定是未来的主流,我个人是看好Titan的,Neo4j没法存储巨大的一张关系图 ,因为他不支持分片,而Titan是天生分布式的,可以构建在Hbase,Cassandra之上外加+ES或者Solr存储索引,非常强大,再此不在过多 对比两个图形数据库
我是攻城师
2018/05/14
1.2K0
关于用户路径分析模型_spark用户行为路径
归因分析是通过一定的逻辑方法,计算每个渠道、或者触点对最终结果贡献程度的方法。有一套合理的归因办法,才能科学地衡量不同渠道的广告价值,指导更好的投放。 其是衡量某一个渠道/触点价值的,没有考虑触点之间的跳转。
全栈程序员站长
2022/09/23
8390
关于用户路径分析模型_spark用户行为路径
PHP基于ffmpeg实现转换视频,截图及生成缩略图的方法
本文实例讲述了PHP基于ffmpeg实现转换视频,截图及生成缩略图的方法。分享给大家供大家参考,具体如下: 这里把ffmpeg 和  生成缩略图整合了一下:
用户2323866
2021/07/01
9500
【C++】第六节—内存管理
现在我们必须要清楚,写一个程序,程序里面的变量都放在我们刚才介绍的那个区域呢?见下题目(面试题,面试会考这样的题,那可得好好学清楚了)
云边有个稻草人
2025/03/31
870
【C++】第六节—内存管理
手指静脉细化算法过程原理解析 以及python实现细化算法
  文中的一些图片以及思想很多都是参考https://www.cnblogs.com/My-code-z/p/5712524.html 大佬的思想 以及自己做一些个人理解的补充   细化算法原理理解起
徐飞机
2018/05/15
1.2K0
[jQuery学习系列一]1-选择器与DOM对象
前言: 好久没有更新博客了, 最近想复习下 之前学过的JS的相关内容, 也算是自己的一种总结. 知识长时间不用就会忘记, 多学多记多用!! 下面的程序都可以在下面的网站进行在线调试:  http://
一枝花算不算浪漫
2018/05/18
3K0
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1007 印章
        这段时间我会把蓝桥杯官网上的所有非VIP题目都发布一遍,让大家方便去搜索,所有题目都会有几种语言的写法,帮助大家提供一个思路,当然,思路只是思路,千万别只看着答案就认为会了啊,这个方法基本上很难让你成长,成长是在思考的过程中找寻到自己的那个解题思路,并且首先肯定要依靠于题海战术来让自己的解题思维进行一定量的训练,如果没有这个量变到质变的过程你会发现对于相对需要思考的题目你解决的速度就会非常慢,这个思维过程甚至没有纸笔的绘制你根本无法在大脑中勾勒出来,所以我们前期学习的时候是学习别人的思路通过自己的方式转换思维变成自己的模式,说着听绕口,但是就是靠量来堆叠思维方式,刷题方案自主定义的话肯定就是从非常简单的开始,稍微对数据结构有一定的理解,暴力、二分法等等,一步步的成长,数据结构很多,一般也就几种啊,线性表、树、图、再就是其它了。顺序表与链表也就是线性表,当然栈,队列还有串都是属于线性表的,这个我就不在这里一一细分了,相对来说都要慢慢来一个个搞定的。蓝桥杯中对于大专来说相对是比较友好的,例如三分枚举、离散化,图,复杂数据结构还有统计都是不考的,我们找简单题刷个一两百,然后再进行中等题目的训练,当我们掌握深度搜索与广度搜索后再往动态规划上靠一靠,慢慢的就会掌握各种规律,有了规律就能大胆的长一些难度比较高的题目了,再次说明,刷题一定要循序渐进,千万别想着直接就能解决难题,那只是对自己进行劝退处理。加油,平常心,一步步前进。
红目香薰
2023/02/23
3370
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1007 印章
R语言 多图布局一个函数就够:plot_layout
上图 p1 + p2 + p3 + p4 + p5 + plot_layout(byrow = FALSE)
拴小林
2021/05/31
2.4K0
R语言 多图布局一个函数就够:plot_layout
Mysql 分区介绍(二) —— RANGE分区
通过范围的方式进行分区, 为每个分区给出一定的范围, 范围必须是连续的并且不能重复, 使用VALUES LESS THAN操作符
aox.lei
2018/09/10
3.2K0
Oracle 11g新特性虚拟列分区
如今有个需求:一个单据表要依照月份来分区。假设是在Oracle 10g上,仅仅能再加一个字段。
全栈程序员站长
2022/08/27
9450
C/C++内存管理
注意: 申请和释放单个元素的空间,使用 new 和 delete 操作符;申请和释放连续的空间,使用 new[] 和 delete[]。
waves浪游
2024/12/15
1301
C/C++内存管理
太阳系行星运行轨道图,C语言,源代码分享
1.Visual Studio 2022 2.安装easyx图形库,可以调用头文件
命运之光
2024/03/20
3400
太阳系行星运行轨道图,C语言,源代码分享
2.进程控制
有2个循环程序A和B,它们共享一个变量N,程序A每执行一次时,都要做N:=N+1; B则每次要执行Print(N), 然后再做N:=0. 若程序A,B以不同的速度运行有以下三种不同的结果. ​ N:=N+1在print(N)和N:=0之前,则N值分别为 n+1,n+1,0. N:=N+1在print(N)和N:=0之后,则N值分别为 n,0,1. N:=N+1在print(N)和N:=0之间,则N值分别为 n,n+1,0.
见贤思齊
2020/08/05
6380
2.进程控制
跟着Nature Genetics学作图:R语言ggplot2画图展示基因树的拓扑结构冲突
https://doi.org/10.1038/s41588-024-01683-0
用户7010445
2024/04/15
2050
跟着Nature Genetics学作图:R语言ggplot2画图展示基因树的拓扑结构冲突
【C++】内存管理:内存分布、new/delete
C语言中内存管理的方式就是malloc/calloc/realloc/free。详细介绍在【C语言】动态内存管理:malloc、calloc、realloc、free-CSDN博客
羚羊角
2024/10/21
910
【C++】内存管理:内存分布、new/delete
C语言基础 - 实现动态数组并增加内存管理
用C语言实现一个动态数组,并对外暴露出对数组的增、删、改、查函数 (可以存储任意类型的元素并实现内存管理)
gwk_iOS
2018/08/23
1.7K0
C语言基础 - 实现动态数组并增加内存管理
Oracle SQL调优之表设计
分区表使用与查询频繁而更新数据不频繁的情况,不过要记得加全局索引,而不加分区索引,分区类型:分区分为范围分区、列表分区、HASH分区、组合分区四种,用了分区表,查询时就定位到对应的区,而不用全表,所以查询效率比普通表好,当然有很多细节,还是建议看《收获,不止sql优化》一书
SmileNicky
2019/06/11
5080
相关推荐
用递归法把二叉树的叶子结点按从左到右的顺序连成一个单链表
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档