首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

基于Neo4j构建的外贸企业关系图谱做企业相似度查询「建议收藏」

目录 一、外贸企业关系图谱的构建 1.从Oracle导出数据 2.导入数据到Neo4j 3.Neo4j数据展示 二、用Cypher做企业关联查询 1.多层关系查询 2.基于邻居信息的Jaccard...相似度计算 3.加权关联度得分计算 三、总结 一、外贸企业关系图谱的构建 说来惭愧,本科、研究生期间还没写过博客,正巧最近在写论文,想结合自己开发的项目来构思,于是就通过这篇博客记录一下使用Neo4j图数据库来做企业相似度查询的过程...这次外贸企业关系图谱的构建用到以前项目中测试库(Oracle)的数据,导入成csv格式后,再通过python的py2neo导入到neo4j中。...2.导入数据到Neo4j Neo4j有自己的csv导入工具,还可以通过cypher语句导入csv格式的数据,但是这里我使用的是pyhon的py2neo库来完成数据的导入。...1.多层关系查询 由于该图数据的有向关系只有一层,所以查询时不能指定关系的方向,这里我们以‘陕西和沃进出口有限公司’为例,查询该企业的多层关系,查询结果如下图: 对应的Cypher查询语句如下

1.5K20

干货|在选择数据库的路上,我们遇到过哪些坑?

我们在研究过程中发现,关系数据库 (RDBMS) 并不适合我们。当然,我们的本能反应就是使用这种数据库,毕竟我们已经用了这么长时间。但关系数据库需要固定的架构,并且创建数据库时就要设置好这一固定架构。...最后花了大约两个月时间,然后我们终于能在不影响应用程序剩余部分的情况下进行迁移。 我们为什么选择资源描述框架?...因为它是专为连接带有统一资源标识符的信息而设计的,还拥有一种叫做 SPARQL 的标准化查询语言。 简而言之,资源描述框架是有关主/谓/宾关系的,从下面看得出来,其模型非常简单: ?...由于所有内容都表现为节点,要想进行复杂的关系查询,必须先到达目的地然后再一同返回,这给我们带来了一些性能问题。虽然资源描述框架没有成为我们的最终选择,但它确实帮我们看清了专注于数据关系的希望。...作为一家小型初创公司,在这么短的时间里经历了这么多种数据库,我们有些担心。

1.3K70
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    知识图谱(1)——neo4j的安装下载相应的资源

    Neo4j 是目前最流行的图形数据库,支持完整的事务,在属性图中,图是由顶点(Vertex),边(Edge)和属性(Property)组成的,顶点和边都可以设置属性,顶点也称作节点,边也称作关系,每个节点和关系都可以由一个或多个属性...Neo4j创建的图是用顶点和边构建一个有向图,其查询语言cypher已经成为事实上的标准。...网上有很多教程,花了一上午时间才安装完,遇到了一些坑,记下来吧 下载相应的资源 下载java JDK 网站:http://www.oracle.com/technetwork/java/javase/...downloads/index.html (一定要下java8.0版本,就这个原因浪费了好长时间) 然后安装 下载Neo4j安装文件 从Neo4j官网下载最新版本Neo4j 3.4.5 社区(Community...在Neo4j浏览器中创建节点和关系 ? 然后就可以愉快滴玩耍啦 ?

    88211

    无恋爱关系!马斯克和Neuralink女高管的私生双胞胎是这么来的?

    但是,「最新消息」来了,说这俩娃是那个高管体外受精生的,二人根本没有恋爱关系。 好家伙,老马直接撇的一干二净。...据路透社报道,该公司的员工手册中,明令禁止任何担任高级职务的人之间存在私人关系,因为这可能会引发潜在的利益冲突。...但是,Neuralink却接受了Zilis对她与马斯克之间关系的描述,认为她与马斯克的关系是非浪漫的,并允许她继续与马斯克合作。 Neurolink也没有对此事置评。...他甚至说了这么一番豪言壮语,「文明是轰轰烈烈地走出去,而不是呜呜咽咽地用成人尿布。」 而他的原因也同样直率,他认为,出生率的下降再加上人工智能的兴起,可能会导致世界上没有足够的人。...马斯克与女高管 如果有读者忘记了老马和Neuralink女高管的种种往事,也没关系。 事儿其实很简单。

    24220

    优化Power BI中的Power 优化Power BI中的Power Query合并查询效率,Part 1:通过删除列来实现

    但同时,在Power Query中合并查询是一个常见的影响刷新效率的因素。在我的工作中,经常会遇到对一些非文件夹性质的数据源进行合并查询操作,所以我一直在想,有没有办法可以对其进行优化。...: 表中列的数量是否影响合并查询时的效率?...为什么表的列数会影响合并查询的性能的?因为合并查询是发生在内存当中,所以合并查询的表越大,内存需求就越大,也就需要更多的分页,因为超过了分页文件256MB的限制。...当每个表中含有两列时合并查询会提交584MB数据,而如果时合并查询两个7列的表,最大会提交3GB的数据。 所以最后,我们可以从容地得出结论: 在合并查询前,去掉不必要的列,的确可以提升刷新效率。...其实合并查询删掉不必要的列,可以有两种方式,一种是如今天说的,在合并查询之前删掉;另外,我们也可以在合并查询后对不需要的列进行删除。 从逻辑上来看,合并查询后再删除列,很明显要比今天说的浪费时间。

    4.6K10

    2018-11-23 一个公司的图数据的选型

    image_1crgtnkj772g3l31ouj1o8tbchm.png-8.2kB neo4j是由鸿波进行考差 neo4j是很完善的图数据库 但是只有他的企业版是支持集群的 但是收费 所以pass...有以下特点 支持resetful api 使用graphql+-查询语言进行查询 有多种语言的client 但是不支持自由选择底层存储 就是我们公司的高可用mongo集群的作用发挥不出来 cayley...是我们重点考察的图数据库 花了很多功夫 这是我对于cayley的基础知识总结 这是我后来对cayley做的一次技术分享PPT 对于cayley的原理跟设计思想我有去思考的 探索出来的细节未必正确...阶段二:开发 ---- cayley时期 我们做了一个demo 就是基于我们的cayley图数据库来构建我们的关系图谱 从而找出用户中的最近联系的人以及可能认识的人 当时因为在设计理念以及对cayley...说实话我们没接触多长时间 所以在这一阶段写的代码并不多 有一个需求就是找子图 代码在subgraph 里面我也写了部分注释 博客详情在我的subgraph博客 hugegraph时期我花了很多时间在看gremlin

    1.5K40

    Neo4J超详细专题教程,快来收藏起来吧

    Neo4j图数据库将其所有数据存储在节点和关系中,我们不需要任何额外的RDBMS数据库或NoSQL数据 库来存储Neo4j数据库数据,它以图的形式存储数据。...单向关系 双向关系 在以下场景中,我们可以使用Neo4j CQL CREATE命令来创建两个节点之间的关系。 这些情况适用于Uni和双向关系。...我们使用Neo4j CQL REMOVE子句来删除节点或关系的现有属性。...与SQL一样,Neo4j CQL有两个子句,将两个不同的结果合并成一组结果 UNION UNION ALL UNION子句 它将两组结果中的公共行组合并返回到一组结果中。...如果我们要修整CQL查询结果集顶部的结果,那么我们应该使用CQL SKIP子句 skip跳过 skip和limit可以结合使用达到分页的效果 16.合并 Neo4j使用CQL MERGE命令 -

    5K21

    Cypher查询语句

    简介在图形数据库的世界中,Neo4j 以其强大的图形数据处理能力而闻名。而 Cypher,作为 Neo4j 的查询语言,提供了一种简洁且易于理解的方式来操作图形数据。...每个节点代表一个实体,而关系则表示实体间的连接。节点和关系通过标签(Label)和类型(Type)来标识。创建节点:使用CREATE关键字可以创建节点。...CREATE (n:Person {name: 'Alice'})创建关系:创建节点后,可以使用-[:TYPE]->来定义节点间的关系。...合并操作MERGE:用于创建新节点或关系,如果已存在则不重复创建。...通过本篇文章,我们介绍了 Cypher 的基本语法,包括节点和关系的创建、查询、聚合函数的使用、子查询、模式匹配、变量长度关系、合并、删除和更新操作,以及索引和约束的创建。

    15600

    Neo4j 系列(1) —— 初识 Neo4j

    Neo4j 的构建元素 Cypher QL 的使用 创建节点 创建关系 查询 设置属性 删除操作 使用索引 使用约束 最短路径 前置知识 什么是图数据库 图数据库是基于图论实现的一种NoSQL数据库,其数据存储结构和数据查询方式都是以图论为基础的...,控制访问并支持客户 酒店领域:万豪和雅高酒店等顶级酒店公司依使用图数据库来管理复杂且快速变化的库存图数据库并非指存储图片的数据库,而是以图数据结构存储和查询数据。...基于方向性,Neo4j关系被分为两种主要类型: 单向关系 单向关系用 ()-[]->() 来表示 双向关系 双向关系用 ()-[]-() 来表示 属性 属性(Property)是用于描述图节点和关系的键值对...其中Key是一个字符串,值可以通过使用任何Neo4j数据类型来表示。属性用大括号来表示。...MERGE,即以合并的方式来创建。

    2.9K30

    neo4j 开发记录

    创建节点 创建关系 删除 查询 docker搭建 拉取镜像 docker pull neo4j 启动 docker run -d --name myneo4j \ -p 7474:7474 -p...,这里我们就默认mysql的:(下面这个是对的,将两个事务管理进行合并) @Configuration @EnableNeo4jRepositories("com.lry.jps.repository.neo4j...neo4j语法 () 括住的是节点,{} 括住的是属性 : 开头的是标签 []括住的是关系 创建节点 create(:enter{name:"6"}); 创建关系 # 查询出节点name为3和4的,别名...(a) where a.name = '' delete a 查询 查询标签对应的节点关系图: match(a:enter) return a; 查询指定标签的节点关系: match(a:enter)-...match (a:GraphNode) where not((a)-[]->()) return a # 查询有关系的和没有关系的节点,和计数 # 通过union 将插件结果合并 match(a)-

    1K20

    越来越火的图数据库究竟是什么

    :万豪和雅高酒店等顶级酒店公司依使用图数据库来管理复杂且快速变化的库存 既然图数据库应用这么广泛,越来越多的企业和开发者开始使用它,那它究竟什么过人之处呢,下面我们来揭开它的神秘面纱。...学过数据结构这么课程的同学脑海中应该或多或少有图的概念。 1.1 什么是图? 图由两个元素组成:节点和关系。 每个节点代表一个实体(人,地,事物,类别或其他数据),每个关系代表两个节点的关联方式。...,缺乏统一的查询语法 MongoDB 图数据库 节点和关系组成的图 利用图结构相关算法(最短路径、节点度关系查找等) 可能需要对整个图做计算,不利于图数据分布存储 Neo4j、JanusGraph 2.2...很多场景下,你的业务需求完全超出了当前的数据库架构。 举个栗子:假设某关系型数据库中有这么几张用户、订单、商品表: ? 当我们要查询:“用户购买了那些商品?” 或者 “该商品有哪些客户购买过?”...而“购买该产品的客户还购买了哪些商品?”类似的查询几乎不可能实现。 关系查询性能对比 在数据关系中心,图形数据库在查询速度方面非常高效,即使对于深度和复杂的查询也是如此。

    2.3K30

    hadoop生态系统到底谁最强?

    不,这么多的用户的总数据集收纳了这么多的信息,甚至不是RDBMS可以接触到的。你会从这么多的表中获取数据并加进它,它需要时间来加载页面。 Hadoop的可以做到这一切?...HBase扮演该数据库的角色。 每个分析用例都可以使用hive / mapreduce等来完成。这些分析的结果以及其他信息(配置文件)可以使用HBase存储(提供快速随机访问)。...Presto允许查询它所在的数据仓库,包括Hive,Cassandra,关系数据库甚至专有数据存储。单个Presto查询可以合并来自多个源的数据,从而允许整个系统的分析。...Neo4j:Neo4j重点是由NeoTechnology开发的本地图形存储和处理事务性数据库开发的图形数据库管理系统,Neo4j的是最流行的图形数据库。...Neo4j以Java实现,可以让其他语言编写的软件通过HTTP端点使用Cypher查询语言访问。

    88240

    Neo4J性能优化指引

    内存配置 Neo4j服务的内存划分为很多部分,以下是其中的一部分: neo4j 内存管理 「JVM堆」 JVM堆是一个单独的动态内存分配,Neo4j使用它来存储实例化对象。...为了提高性能,你可以配置足够大的内存来保证并发。 「事务」 在执行事务时,Neo4j将尚未提交的数据、结果、和查询的中间状态保存在内存中。...所以,如果长时间运行复杂的查询可能需要更多的内存,配置参数:dbms.memory.transaction.global_max_size 「页面缓存」 页面缓存用于缓存磁盘中的Neo4j数据,把图数据和索引缓存到内存中有助于避免代价高昂的磁盘读写...B 树、文本和全文索引提供从属性值到实体(节点或关系)的映射。token lookup索引提供从标签到节点或从关系类型到关系的映射,而不是属性和实体之间的映射。...「为了获得最大性能,建议为 Neo4j 提供尽可能多的 RAM 以避免磁盘读写」。 页面缓存 Neo4j 启动时,它的页面缓存是空的,需要预热。页面及其图形数据内容在查询需要时按需加载到内存中。

    3.5K21

    图查询语言的历史回顾短文

    Neo4j 的联合创始人 Emil Eifrém 和这些学生们花了一周的时间,将 Peter 最初的想法扩展成为这样一个模型:节点通过关系连接,key-value 作为节点和关系的属性。...这群人开发了一个 Java API 来和这种数据模型交互,并在关系型数据库之上实现了一个抽象层。 虽然这种网络模型极大的提高了生产力,但是性能一直很差。...节点、关系、属性、关系只能有一个标签、节点可以有零个或者多个标签,以上这些构成了 Neo4j 属性图的数据模型定义。后来增加的索引功能,让 Cypher 成为了与 Neo4j 交互的主要方式。...2013 年 12 月,Neo4j 2.0 引入了 label 的概念,label 本质上是个索引。这样,查询引擎就可以利用索引,来选择模式所匹配到的节点,而不需要用户指定开始查询的节点。...在开发这个基准测试的过程中,他们发现市面上没有标准的查询语言来表达图查询。

    2.8K20

    Neo4j的查询语法笔记(二)

    cypher是neo4j官网提供的声明式查询语言,非常强大,用它可以完成任意的图谱里面的查询过滤,我们知识图谱的一期项目 基本开发完毕,后面会陆续总结学习一下neo4j相关的知识。...今天接着上篇文章来看下neo4j的cpyher查询的一些基本概念和语法。...,并加了别名 5,-[role:acted_in {roles:["neo","Hadoop"]}]-> 访问某一类关系下的某个属性的关系的数据 三,模式语法 模式语法是节点和关系查询语法的结合,通过模式语法我们可以进行我们想要的任意复杂的查询...通过组合上面的一些语句,我们可以写出非常强大复杂的语法,来查询我们想要检索的内容,cypher会 自动解析语法并优化执行。...ACTED_IN]-(a:Person) RETURN m.title AS movie, collect(a.name) AS cast, count(*) AS actors 9, union 联合 支持两个查询结构集一样的结果合并

    4.9K40

    使用Neo4j和Java进行大数据分析 第2部分

    本文的第一部分介绍了Neo4j及其Cypher查询语言。如果您已经阅读了第1部分,那么您已经了解了为什么Neo4j和其他图形数据库特别受社交图形或网络中用户之间关系建模的影响。...然后,我们使用Cypher查询语言对Neo4j中的一个家庭进行建模,包括年龄,性别和家庭成员之间的关系等个人属性。我们创建了一些朋友来扩大我们的社交图,然后添加键/值对来生成每个用户看过的电影列表。...最后,我们查询了我们的数据,使用图形分析来搜索一个用户没有看到但可能喜欢的电影。 Cypher查询语言与SQL等传统数据查询语言不同。...在本文中,您将学习如何将Neo4j与Java Web客户端应用程序集成,您可以使用它来查询我们在第1部分中创建的社交图。...在开发环境中使用Neo4j进行设置后,我们花了大部分时间来了解Neo4j的Cypher查询语言。我们建立了一个家庭关系网络,并使用Cypher查询了这些关系。

    5K20

    微服务架构下数据如何存储?有考虑过吗?

    关系型数据库 存储结构化数据,以及需要更多维度关联,需要给用户提供丰富的实时查询场景时,应该使用关系型数据库。...NoSQL NoSQL 即 Not Only SQL,其概念比关系型数据库更新,NoSQL 为数据的查询提供了更灵活、丰富的场景。下面简单列举了一些 NoSQL 数据库及其应用场景。...开源的 Neo4j 是可以支持大规模分布式集群的图形数据库。一般被广泛用于道路交通应用、SNS 应用等,Neo4j 提供了独特的查询语言 CypherQueryLanguage。...为了直观了解 Neo4j 的数据结构,可以看下这个示例(在运行 Neo4j 后,官方的内置数据示例),图中绿色节点代表“Person”实体,中间的有向的剪头连线就是代表节点之间的关系“Knows”。...为了优化查询,可以将 Segment File 进行合并,减少磁盘 IO,并且一定程度持久化 Memtable(提高内存查询效率)——这就是 LSM-tree(Log-structured Merge-Tree

    4.1K10

    《权游》人物关系你还捋不清?Neo4j帮你5分钟搞定!

    一向以处理“关系的连接”称霸江湖的图数据库 接下来我们试一试好玩的,用图数据库Neo4j,来梳理一下权游的人物关系图。 Ps:贴心的小编在后面奉上了Neo4j最全的安装配置教程!...关键节点校验 Amazing,如此“凌乱”的关系网,Neo4j秒秒钟可以理清,点个赞! 这么好用的图数据库,我们怎么上手呢?...在创建节点的时候就已经把关系给建立起来,避免了在复杂查询场景下的处理 基于JVM实现 提供一套易于理解的查询语言Cypher以及内置的可视化UI 很好的支持ACID,有事务机制 它很容易表示连接的数据...它不需要复杂的连接来检索连接的/相关的数据,因为它很容易检索它的相邻节点或关系细节没有连接或索引 Neo4j是原生的图数据库引擎,由于底层直接以图的形式存储节点和关系,可以使用图结构的自然伸展特性来设计免索引邻近节点遍历的查询算法...Neo4j具有非常高效的查询性能,相比于RDBMS可以提高数倍乃至数十倍的查询速度。

    2.9K21
    领券