美文网首页
NEO4J(数据存入尝试)

NEO4J(数据存入尝试)

作者: 冰镇果汁加点糖 | 来源:发表于2018-05-11 16:17 被阅读0次

2018-05-11
用Cyher语句进行少量数据存入,目的在于需求合适的数据模型。
缺乏相关理论指导,只能通过尝试来发现寻找合适的方案了

  1. Cypher 存入一个节点的语法示例为:
CREATE (TheMatrix:Movie {title:'The Matrix', released:1999, tagline:'Welcome to the Real World'})
CREATE (Keanu:Person {name:'Keanu Reeves', born:1964})
CREATE (Carrie:Person {name:'Carrie-Anne Moss', born:1967})

可以看到属性部分的格式为

key1:value2,key2:value2,...

之前通过API取得的数据为

MainSense: WN:EN:Vietnam
POS:NOUN
iskeyConcept: false
Sense: WN:EN:Vietnam
Sense: WN:EN:Socialist_Republic_of_Vietnam
...
Sense: WIKIRED:EN:Red_Vietnam_(modern)
glosses: A communist state in Indochina on the South China Sea; achieved independence from France in 1945
glosses: Vietnam, officially the Socialist Republic of Vietnam, is the easternmost country on the Indochina Peninsula in Southeast Asia.
...
glosses: Country in Southeast Asia.
glosses: Vietnam is a country in East Asia.
Image: <a href="https://upload.wikimedia.org/wikipedia/commons/d/d6/Location_Vietnam_ASEAN.svg">Location_Vietnam_ASEAN.svg#OMWIKI</a>
Image: <a href="https://upload.wikimedia.org/wikipedia/commons/8/80/Asia_%28orthographic_projection%29.svg">Asia_(orthographic_projection).svg#OMWIKI</a>
...
Image: <a href="https://upload.wikimedia.org/wikipedia/commons/5/5f/Flag_of_Quebec.svg">Flag_of_Quebec.svg#WIKIDATA</a>
Image: <a href="https://upload.wikimedia.org/wikipedia/commons/4/4b/Flag_of_Libya_%281977-2011%29.svg">Flag_of_Libya_(1977-2011).svg#WIKIDATA</a>
Image: <a href="https://upload.wikimedia.org/wikipedia/commons/3/34/Red_star.svg">Red_star.svg#WIKIDATA</a>
Category: BNCAT:EN:1976_establishments_in_Vietnam
Category: BNCAT:EN:Communist_states
...
Category: BNCAT:EN:Vietnam
Category: BNCAT:EN:Vietnamese-speaking_countries_and_territories

想要直接复制粘贴成Cypher命令的一部分就需要对数据格式进行调整
可以选择

  1. 直接调整获取数据的java程序,格式化输出,再次获取数据
    2.对以获取的数据直接进行格式调整
    我选择用方法2,通过VIM调整数据格式

在normal模式下

gg      #指针到文档开头
q1      #进入寄存器
^Wi'<Esc>$a',<Esc>j   #录入指令
q        #离开寄存器
10000@1        #调用寄存器1中的指令10000次

得到格式化后的结果

MainSense: 'WN:EN:Vietnam',
POS:'NOUN',
iskeyConcept: 'false',
Sense: 'WN:EN:Vietnam',
Sense: 'WN:EN:Socialist_Republic_of_Vietnam',
Sense: 'WN:EN:Viet_Nam',
Sense: 'WN:EN:Annam',
Sense: 'GEONM:EN:Socialist_Republic_of_Vietnam',
Sense: 'GEONM:EN:Vietnam',
Sense: 'WIKI:EN:Vietnam',
Sense: 'WIKIDATA:EN:How_to_contribute',
Sense: 'WIKIDATA:EN:How_to_contribute',
Sense: 'WIKIDATA:EN:Socialist_Republic_of_Vietnam',
...

将结果粘贴至Cypher语句属性部分创建节点

CREATE (vietnam:Country {id:'bn:00004315n', name:'vietnam',
MainSense: 'WN:EN:Vietnam',
POS:'NOUN',
iskeyConcept: 'false',
Sense: 'WN:EN:Vietnam',
Sense: 'WN:EN:Socialist_Republic_of_Vietnam',
Sense: 'WN:EN:Viet_Nam',
...
})

这里提示语法错误
发现是原始数据中单引号干扰了Cypher语句中字符串的划分
解决方法:先在原始数据中,将每一个单引号前都加上转义符变成\',然后再调整格式。

成功存入后查看结果。

match.png
观察发现结果并不正确
同名属性被覆盖!!每个属性名都只保留了最后一条记录!
解决方法:将多值属性以数组的形式实现保存
CREATE (vietnam:Country {id:'bn:00004315n', name:'vietnam',
MainSense: 'WN:EN:Vietnam',
POS:'NOUN',
iskeyConcept: 'false',
Sense:[ 'WN:EN:Vietnam',
        'WN:EN:Socialist_Republic_of_Vietnam',
        'WN:EN:Viet_Nam',
        ...],
Image:[ '<a href="https://upload.wikimedia.org/wikipedia/commons/d/d6/Location_Vietnam_ASEAN.svg">Location_Vietnam_ASEAN.svg#OMWIKI</a>',
        '<a href="https://upload.wikimedia.org/wikipedia/commons/8/80/Asia_%28orthographic_projection%29.svg">Asia_(orthographic_projection).svg#OMWIKI</a>',
        '<a href="https://upload.wikimedia.org/wikipedia/commons/6/63/Location_of_Asia.svg">Location_of_Asia.svg#OMWIKI</a>',
        ...]
})

相关文章

  • NEO4J(数据存入尝试)

    2018-05-11用Cyher语句进行少量数据存入,目的在于需求合适的数据模型。缺乏相关理论指导,只能通过尝试来...

  • Neo4j(数据存入尝试2)

    2018-05-14方式过于粗暴,这里是为了记录,切勿模仿 Synset存入 采用简单暴力的方式:通过数据格式调整...

  • neo4j-批量导入工具使用

    从mysql中导出数据存储为csv文件 neo4j 数据库读取csv文件 读取但不存入数据库 读取并存入数据库,需...

  • Neo4j在线备份实现

      随着图数据库的概念越来越火,很多人开始尝试图数据库。这其中Neo4j的使用最容易,用户也最多。开始尝试大都使用...

  • Java实现Neo4j数据库的相关操作

    1.Java实现Neo4j数据库的相关操作 2.图形数据库 Neo4j 开发实战 3.用java构建neo4j数据...

  • neo4j介绍(一)

    Neo4j介绍 Neo4j不同于传统的关系数据库管理系统,Neo4j是一个无架构的数据库。在开始添加数据之前,你并...

  • Neo4j 3.1支持因果集群并改进了安全

    Neo4j团队最近发布了Neo4j图数据库3.1版,该最新版的NoSQL图数据库Neo4j提供了因果集群(Caus...

  • Ubuntu下neo4j的安装

    neo4j官网 neo4j服务器端安装 Linux下图形数据库Neo4j单机安装 Neo4j实战-使用python...

  • neo4j操作指南

    Neo4j 一、什么是neo4j? Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不...

  • python操作neo4j简单实例

    一:neo4j是什么 neo4j:Neo4j是一个高性能的,NOSQL图形数据库,有关于更多neo4j的资料出门右...

网友评论

      本文标题:NEO4J(数据存入尝试)

      本文链接:https://www.haomeiwen.com/subject/sbffdftx.html