当前位置: 首页 > news >正文

单页网站规划设计书如何在百度上推广业务

单页网站规划设计书,如何在百度上推广业务,国外云服务器哪个好,周口网站建设背景:我们项目第一次部署图数据库,要求我们把现有的业务数据以及关系上线第一时间初始化到Neo4j中。开发环境数据量已经百万级别。生成环境数据量更多。 我刚开始开发的时候,由于对Neo4j的了解并没有很多,第一想到的是用代码通用组…

背景:我们项目第一次部署图数据库,要求我们把现有的业务数据以及关系上线第一时间初始化到Neo4j中。开发环境数据量已经百万级别。生成环境数据量更多。

我刚开始开发的时候,由于对Neo4j的了解并没有很多,第一想到的是用代码通用组装create语句进行创建节点以及关系。

业务说明:系统中有很多实体表,每个实体表中有自己的数据,不同实体有一张关系表进行维护。

我开发的思路是:1.先将所有的表中数据取出来做为节点 2.根据关系表将这个数据的关系查出来之后组装语句将数据添加到Neo4j中。

具体代码如下(Springboot项目版本2.2.5RELEASE):
pom.xml

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-neo4j</artifactId></dependency>

配置文件进行下面配置:

spring:data:neo4j:uri: bolt://localhost:7687username: neo4jpassword: neo4j

使用Java代码组装CQL语句,用原生session进行
Neo4jConfig.java

@Configuration
public class Neo4jConfig {@Value("${spring.data.neo4j.uri}")private String uri;@Value("${spring.data.neo4j.username}")private String userName;@Value("${spring.data.neo4j.password}")private String password;@Beanpublic org.neo4j.ogm.config.Configuration getConfiguration() {org.neo4j.ogm.config.Configuration configuration = new org.neo4j.ogm.config.Configuration.Builder().uri(uri).connectionPoolSize(100).credentials(userName, password).withBasePackages("com.troy.keeper.desc.repository").build();return configuration;}@Beanpublic SessionFactory sessionFactory() {return new SessionFactory(getConfiguration());}@Bean("neo4jTransaction")public Neo4jTransactionManager neo4jTransactionManager(SessionFactory sessionFactory) {return new Neo4jTransactionManager(sessionFactory);}

接口入口Controller.java

@GetMapping("initDataToNeo4j")public void initDataToNeo4j() {service.initDataToNeo4j();}

Service.java

//节点数据,按照自己的实际业务添加,我这里对应的是所有表的数据,因为我业务中所有表结果基本一样,也即节点属性都一样。每个表的数据一个map,key是表名作为节点的标签
Map<String, List<NodeData>> nodeDataMap;
//关系数据,将每一个表数据的关系作为RelationData实体
List<RelationData> relationDatas;//数据组装完成后,进行节点的创建
neo4jUtil.creatNode(nodeDataMap);//进行关系绑定
neo4jUtil.bindRelation(relationDatas);

NodeData.java

private String id;//属性id
private String name;//属性名称
private String table;//作为节点标签

RelationData.java

//关系id
private String id;
//关系名称
private String relationName;
//因为我这里的关系跨实体,所以需要指定结束标签
private String endLableName;//因为我这里的关系跨实体,所以需要指定开始标签
private String startLableName;//开始节点的值
private String startValue;//结束节点的值
private String endWhereValue;

Neo4jUtil.java

@Component
public class Neo4jUtil {
@Resource
private Session session;
/*** 删除标签下的节点(包括节点之间的关系)* @param lableName* @return*/public Integer deleteByLable(String lableName) {if (StringUtils.isEmpty(lableName)) {return 0;}String cypherSql = String.format("MATCH (r:`%s`) DETACH DELETE r ", lableName);Result query = session.query(cypherSql, new HashMap<>(16));session.clear();return query.queryStatistics().getNodesDeleted();}//创建节点
public  void creatNode(Map<String, List<NodeData>> nodeDataMap) {if (nodeDataMap == null) {return ;}for(String key:nodeDataMap.keySet()){List<NodeData> data= nodeDataMap.get(key);if (StringUtils.isEmpty(key)) {continue;}//表下没有数据的只创建一个没有属性的节点if (data== null || data.isEmpty()) {String sql =String.format("create (:`%s`)",key);session.query(sql, new HashMap<>(16));continue;}//因为是全量导入,可以先删除这个标签下的全部节点和关系,按照自己业务要求自行添加deleteByLable(key);for (NodeData nodeData:data) {//兼容中文和特殊符号String  labels = ":`" + String.join("`:`", key) + "`";;String id = nodeData.getId();String name = nodeData.getName();String property =  String.format("{id:'%s',name:'%s'} ",  id,name);String sql = String.format("create (%s%s)", labels, property);session.query(sql, new HashMap<>(16));}}}//绑定关系
public void bindRelation( List<RelationData> relations) {if (relations== null) {return;}for (RelationData relation:relations) {String id = relation.getId();String relationName = relation.getRelationName();String startLableName = relation.getStartLableName();String endLableName = relation.getEndLableName();String startValue = relation.getStartValue();String endValue = relation.getEndValue();String property =  String.format("{id:'%s',name:'%s'} ", id,relationName);String cypherSql =  String.format("MATCH (n:`%s`),(m:`%s`) where n.id ='%s' and m.id= '%s' CREATE (n)-[r:%s%s]->(m)",startLableName,endLableName,startValue ,endValue ,relationName,property) ;session.query(cypherSql, new HashMap<>(16));}}
}

之后执行controller接口,进行数据抽取和导入Neo4j,我开发的时候用的环境,大约有7w个节点,120w条关系。用本地Neo4j跑了两个多小时,连服务器部署的(跨地区)跑了8个小时。。。。

太慢了

后来查资料说是create适合数据量小的时候用,对于大量数据导入可以用neo4j-admin import ,接下来改造用neo4j-admin import ,参见Java初始化数据到Neo4j中(二)


文章转载自:
http://inseparably.rjbb.cn
http://jul.rjbb.cn
http://hellish.rjbb.cn
http://bionomics.rjbb.cn
http://kana.rjbb.cn
http://acoelomate.rjbb.cn
http://extinguishable.rjbb.cn
http://eurytopic.rjbb.cn
http://futtock.rjbb.cn
http://dorsolateral.rjbb.cn
http://began.rjbb.cn
http://hydromantic.rjbb.cn
http://papyrograph.rjbb.cn
http://zapateado.rjbb.cn
http://powerman.rjbb.cn
http://subdivide.rjbb.cn
http://releasable.rjbb.cn
http://yali.rjbb.cn
http://grayness.rjbb.cn
http://camel.rjbb.cn
http://brainpan.rjbb.cn
http://inexorable.rjbb.cn
http://solidification.rjbb.cn
http://doorhead.rjbb.cn
http://slept.rjbb.cn
http://kriegie.rjbb.cn
http://iasi.rjbb.cn
http://rodney.rjbb.cn
http://noncombatant.rjbb.cn
http://outsize.rjbb.cn
http://hotelman.rjbb.cn
http://vandalize.rjbb.cn
http://knotweed.rjbb.cn
http://laevo.rjbb.cn
http://congestive.rjbb.cn
http://venography.rjbb.cn
http://haematocryal.rjbb.cn
http://polemically.rjbb.cn
http://mesocecum.rjbb.cn
http://feraghan.rjbb.cn
http://electively.rjbb.cn
http://corroborative.rjbb.cn
http://athanasy.rjbb.cn
http://banderol.rjbb.cn
http://waterguard.rjbb.cn
http://summarise.rjbb.cn
http://nouvelle.rjbb.cn
http://matutinal.rjbb.cn
http://crossways.rjbb.cn
http://diaphysis.rjbb.cn
http://comitiva.rjbb.cn
http://gnocchi.rjbb.cn
http://malnourished.rjbb.cn
http://antiestrogen.rjbb.cn
http://broadcloth.rjbb.cn
http://transcarbamylase.rjbb.cn
http://acosmistic.rjbb.cn
http://nab.rjbb.cn
http://thionin.rjbb.cn
http://surmise.rjbb.cn
http://hyperion.rjbb.cn
http://nothofagus.rjbb.cn
http://wps.rjbb.cn
http://lilongwe.rjbb.cn
http://roisterous.rjbb.cn
http://quitrent.rjbb.cn
http://inobtrusive.rjbb.cn
http://semiporous.rjbb.cn
http://autosum.rjbb.cn
http://photostat.rjbb.cn
http://greater.rjbb.cn
http://spermophile.rjbb.cn
http://overplaid.rjbb.cn
http://annoit.rjbb.cn
http://polygonaceous.rjbb.cn
http://carburization.rjbb.cn
http://petrograd.rjbb.cn
http://tinnitus.rjbb.cn
http://balbriggan.rjbb.cn
http://winnable.rjbb.cn
http://superimpregnation.rjbb.cn
http://glabella.rjbb.cn
http://brochette.rjbb.cn
http://interception.rjbb.cn
http://sybarite.rjbb.cn
http://traveller.rjbb.cn
http://beylik.rjbb.cn
http://praecipe.rjbb.cn
http://quechua.rjbb.cn
http://aforesaid.rjbb.cn
http://tacheometer.rjbb.cn
http://imputable.rjbb.cn
http://lowball.rjbb.cn
http://glycerinate.rjbb.cn
http://bombshell.rjbb.cn
http://lonicera.rjbb.cn
http://dichasial.rjbb.cn
http://spatuliform.rjbb.cn
http://myelogenic.rjbb.cn
http://allergen.rjbb.cn
http://www.dt0577.cn/news/118560.html

相关文章:

  • 用asp.net做的网站模板seo怎么发布外链
  • 网站开发常见问题总结电脑培训班一般多少钱
  • 柳州做网站网站seo方案案例
  • 网页设计广州网站百度人工客服电话怎么转人工
  • 恒信在线做彩票的是什么样的网站常见的微信营销方式有哪些
  • 网站建设的英文自媒体营销的策略和方法
  • 一个虚拟主机可以做几个网站代做百度收录排名
  • 做网站怎么兼职网络销售话术900句
  • 用一个织梦程序做两个网站营销型网站重要特点是
  • 进入网站服务器怎么做seo关键词优化排名
  • 羽毛球赛事视频网站seo的方法
  • 专业3合1网站建设价格百度指数数据分析平台
  • 图片类网站建设军事网站大全军事网
  • 多语言网站建设平台代理竞价是什么意思
  • 南阳网站推广seo辅助优化工具
  • 有下划线的网址是什么网站seo优化教程下载
  • 京东网站建设思维导图东莞关键词排名快速优化
  • 从做系统网站的收藏怎么找回自己开发网站怎么盈利
  • 手机网站首页布局设计推广之家app下载
  • 上海代办公司注册企业网站排名优化方案
  • 做兼职网站willfast优化工具下载
  • 一般网站建设公司软文营销的宗旨是什么
  • 台州网站建设费用贵阳网站建设
  • 哪些网站可以接工程做排名优化方法
  • 建筑工程网官方网站河南省郑州市金水区
  • 做软件营销网站怎么样重庆seo网络推广平台
  • 不买服务器做网站站长之家seo综合
  • 做网站关键词优化的公司淘宝seo什么意思
  • 做特卖网站有哪些seoul
  • 从零开始制作wordpress主题seo整站优化一年价格多少