文章目录

  • 一:Neo4j 安装教程
  • 二:Neo4j 基本介绍
  • 三:CQL入门
    • CQL命令:
    • CQL函数:
    • CQL数据类型:
    • create命令
    • match命令
    • return子句
    • 创建关系
    • where子句
    • delete命令
    • remove命令
    • set子句
    • order by子句
    • union子句
    • limit和skip子句
    • merge命令
    • NULL值
    • IN操作符
    • 字符串函数
    • aggregation聚合函数
    • 关系函数
    • 索引
    • unique约束
  • 四:python操作Neo4j

一:Neo4j 安装教程

https://blog.csdn.net/qq_38335648/article/details/115027676

二:Neo4j 基本介绍

知识图谱(Knowledge Graph)中由于数据包含实体、属性、关系等,常见的关系型数据库如MySQL不能体现这类数据的特点。关系型数据库善于处理结构化文本数据,而知识图谱中有很多非结构化和半结构化的数据,因此知识图谱数据的存储一般采用图数据库(Graph Database),其中Neo4j就是最为常见的一种图数据库

Neo4j图数据库主要由以下模块构成:

  • 节点:图表的基本单位,包含具有键值对的属性
  • 属性:用于描述图中节点和关系的键值对,key=value,key是一个字符串,value可以是任何Neo4j的数据类型表示
  • 关系:连接两个节点之间的模块,每个关系包含一个起始节点和一个结束节点
  • 标签:将一个公共名称与一组节点/关系 关联起来,节点/关系可以包含一个/多个标签
  • 数据库浏览器:启动neo4j后,可以通过 http://localhost:7474/browser/ 访问,用于执行CQL并查看输入输出,也可以将数据以csv或json文件格式导出

三:CQL入门

关系型数据库有SQL这种数据库查询语言,图数据库也有查询语言CQL,表示Cypher Query Language。

其特点如下:

  • Neo4j图数据库的查询语言
  • 一种声明性模式匹配语言
  • 遵循SQL语法
  • CQL以命令来执行数据库操作

CQL命令:

create   创建节点、关系和属性match 检索有关节点,关系和属性数据return 返回查询结果where 提供条件过滤检索数据delete    删除节点和关系remove   删除节点和关系的属性order by排序检索数据set     添加或更新标签

CQL函数:

String           用于使用String字面量Aggregation        对CQL的查询结果进行一些聚合操作Relationship   获取关系的细节,如startnode,endnode等

CQL数据类型:

boolean          表示布尔文字,true/falsebyte            表示8位整数short         表示16位整数int              表示32位整数long         表示64位整数float            表示32位浮点数double          表示64位浮点数char            表示16位字符String           表示字符串

create命令

create创建一个没有属性的节点create (<node-name>:<label-name>)  node-name是节点名称,label-name是标签名称如:CREATE (emp:Employee)      创建一个节点名称为emp,标签名称为Employee的节点
create创建一个有属性的节点CREATE (<node-name>:<label-name>{   <Property1-name>:<Property1-Value>........<Propertyn-name>:<Propertyn-Value>})  Property1-name表示属性键的名称,Property1-Value表示属性值如CREATE (dept:Dept { deptno:10,dname:"Accounting",location:"Hyderabad" })

match命令

match从数据库中获取有关节点和属性的数据match (<node-name>:<label-name>)
match通常与其他命令配合使用
# 查询Dept下的内容
MATCH (dept:Dept) return dept# 查询Employee标签下 id=123,name="Lokesh"的节点
MATCH (p:Employee {id:123,name:"Lokesh"}) RETURN p## 查询Employee标签下name="Lokesh"的节点,使用(where命令)
MATCH (p:Employee)
WHERE p.name = "Lokesh"
RETURN p

return子句

return子句用于* 检索节点的某些属性/所有属性* 检索节点和关联关系的某些属性/所有属性
RETURN <node-name>.<property1-name>,........<node-name>.<propertyn-name>
match命令和return子句的结合MATCH (dept: Dept)RETURN dept.deptno,dept.dname,dept.location
create+match+return命令结合

创建关系

在现有节点之间创建没有属性的关系MATCH (<node1-label-name>:<nodel-name>),(<node2-label-name>:<node2-name>)CREATE  (<node1-label-name>)-[<relationship-label-name>:<relationship-name>{<define-properties-list>}]->     (<node2-label-name>)RETURN <relationship-label-name>
在现有节点之间创建有属性的关系,如MATCH (cust:Customer),(cc:CreditCard) CREATE (cust)-[r:DO_SHOPPING_WITH{shopdate:"12/12/2014",price:55000}]->(cc) RETURN r
在新节点之间创建没有属性的关系,如MATCH (fb1:FaceBookProfile1)-[like:LIKES]->(fb2:FaceBookProfile2) RETURN like
在新节点之间创建有属性的关系,如CREATE (video1:YoutubeVideo1{title:"Action Movie1",updated_by:"Abc",uploaded_date:"10/10/2010"})-[movie:ACTION_MOVIES{rating:1}]->(video2:YoutubeVideo2{title:"Action Movie2",updated_by:"Xyz",uploaded_date:"12/12/2012"})
检索节点之间的详细信息MATCH (<node1-label-name>)-[<relationship-label-name>:<relationship-name>]->(<node2-label-name>)RETURN <relationship-label-name>

where子句

提供where子句来过滤match查询的结果
语法:* WHERE <condition>     # <condition> 的语法:<property-name> <comparison-operator> <value>* WHERE <condition> <boolean-operator> <condition>
<boolean-operator>表示布尔运算符,包括and,or,not,xor;
CQL还支持比较运算符,包括* =* < >    # 不等于* <* >* <=* >=

delete命令

delete删除节点子句:delete <node-name-list>

remove命令

delete用来删除节点和关联属性
remove用于删除标签和属性
这两条命令通常都与match配合使用
remove命令语法:REMOVE <property-name-list>

set子句

向现有节点或关系添加新属性,添加或更新属性值
SET  <property-name-list>
如:
MATCH (book:Book)
SET book.title = 'superstar'
RETURN book

order by子句

对match返回的结果进行排序,默认情况下按照升序对行进行排序,按照降序使用desc子句
ORDER BY  <property-name-list>  [DESC]
如:
MATCH (emp:Employee)
RETURN emp.empid,emp.name,emp.salary,emp.deptno
ORDER BY emp.name

union子句

将两个不同的结果合并为一组结果,union/union all
union子句语法:<MATCH Command1>UNION<MATCH Command2>
合并的列名称和数据类型必须相同,这里可以在查询时采用as子句给列起别名
union all子句语法:<MATCH Command1>UNION ALL<MATCH Command2>
union和union all的区别:union会过滤重复行union all不会过滤重复行,依然返回重复的行

limit和skip子句

limit来过滤和限制查询返回的行数,修剪的是查询结果集尾部的结果
limit子句语法:LIMIT <number>skip子句来过滤或限制查询返回行数,修剪的是查询结果集顶部的结果
skip子句语法:SKIP <number>

merge命令

merge命令:创建节点、关系和属性,为数据库检索属性,相当于merge=create+match
merge命令在图中搜索给定模式,若存在则返回结果,若不存在则创建新的节点/关系并返回结果
merge命令语法:MERGE (<node-name>:<label-name>{<Property1-name>:<Pro<rty1-Value>.....<Propertyn-name>:<Propertyn-Value>})
create命令只是在数据库中创建新节点,如果创建的是两个属性关系都相同的节点,也同样会创建两个一样的
但是merge命令如果要创建的节点属性,关系,标签都已经在数据库中,那么不会再创建一个一模一样的节点

NULL值

当create创建一个具有现有节点标签名称,但未指定属性值的节点时,它将创建一个具有NULL属性值的新节点
检索是否具有NULL值的节点,可以通过where is NULL/where is not NULL

IN操作符

IN[<Collection-of-values>] # <Collection-of-values>是由逗号分隔的值的集合

字符串函数

upper        将所有字母更改为大写字母            UPPER (<input-string>)
lower       将所有字母更改为小写字母            LOWER (<input-string>)
substring   获取给定String的子字符串           SUBSTRING(<input-string>,<startIndex> ,<endIndex>)  左闭右开
replace     用于替换一个字符串的子字符串

aggregation聚合函数

count        返回由match命令返回的行数                 COUNT(<value>)
max         返回由match命令返回的一组行中的最大值       MAX(<property-name> )
min         返回由match命令返回的一组行中的最小值       MIN(<property-name> )
sum         返回由match命令返回的所有行的求和值         SUM(<property-name> )
avg         返回由match命令返回的所有行的平均值         AVG(<property-name> )

关系函数

关系函数:startnode    知道关系的开始节点                    STARTNODE (<relationship-label-name>)endnode     知道关系的结束节点                    ENDNODE (<relationship-label-name>)id            知道关系的id                         id (<relationship-label-name>)type        知道字符串中表示一个关系的type          type (<relationship-label-name>)

索引

为具有相同标签名称的所有节点的属性创建索引
创建索引:CREATE INDEX ON :<label_name> (<property_name>)
丢弃索引:DROP INDEX ON :<label_name> (<property_name>)

unique约束

neo4j支持对node或relationship的属性的unique约束
unique约束的优点:避免重复记录,强制执行数据完整性规则
创建unique约束:CREATE CONSTRAINT ON (<label_name>)ASSERT <property_name> IS UNIQUE
丢弃unique约束:DROP CONSTRAINT ON (<label_name>)ASSERT <property_name> IS UNIQUE

四:python操作Neo4j

教程:https://www.jianshu.com/p/fec05b74af6d

案例:python操作Neo4j存储红楼梦人物知识图谱

全部代码如下:

import csv
import py2neo
from py2neo import Graph, Node, Relationship, NodeMatcher, RelationshipMatcher# 连接neo4j
g = Graph('http://localhost:7474', user='neo4j', password='123456')# 删除先前所有的节点和边
g.delete_all()
# 导入数据
with open('./triplets.csv', 'r', encoding='utf-8') as f:reader = csv.reader(f)for item in reader:if reader.line_num == 1:continue# 创建节点start_node = Node('Person', name=item[0])end_node = Node('Person', name=item[1])relation = Relationship(start_node, item[3], end_node)g.merge(start_node, 'Person', 'name')g.merge(end_node, 'Person', 'name')g.merge(relation, 'Person', 'name')
'''使用CQL查询'''
data_list = g.run("MATCH (n:Person) RETURN n LIMIT 25").data()  # list型
print(data_list)
dataframe = g.run("MATCH (n:Person) RETURN n LIMIT 25").to_data_frame()  # dataframe型
print(dataframe)
data_table = g.run("MATCH (n:Person) RETURN n LIMIT 25").to_table()  # table
print(type(data_table))'''使用NodeMatcher查询'''
matcher = NodeMatcher(g)
person = matcher.match("Person", name="贾宝玉").first()
print(person)
person1 = matcher.match("Person", name__not="贾宝玉").first()
print(person1)'''RelationshipMatcher查询数据库中关系'''
relMatch = RelationshipMatcher(g)
relList = list(relMatch.match())
for i in relList:print(i)  # 查找图数据库中所有关系

数据文件 triples.csv 如下:

"head","tail","relation","label"
"贾代善","贾源","son","子"
"娄氏","贾源","daughter_in_law_of_grandson","重孙媳妇"
"贾母","贾代善","wife","妻"
"老姨奶奶","贾代善","concubine","妾"
"贾敏","贾代善","daughter","女"
"嫣红","贾赦","concubine","妾"
"翠云","贾赦","concubine","妾"
"娇红","贾赦","concubine","妾"
"贾迎春","贾赦","daughter","女"
"赵姨娘","贾政","concubine","妾"
"周姨娘","贾政","concubine","妾"
"贾珠","贾政","son","子"
"尤二姐","贾琏","concubine","妾"
"秋桐","贾琏","concubine","妾"
"平儿","贾琏","concubine","妾"
"薛宝衩","贾宝玉","wife","妻"
"花袭人","贾宝玉","concubine","妾"
"贾桂","贾宝玉","son","子"
"贾菌","娄氏","son","子"
"周秀才","贾巧姐","brother_in_law","姐夫"
"周财主","周秀才","father","父亲"
"周妈妈","周秀才","mother","母亲"
"孙亲太太","孙绍祖","mother","母亲"
"刑大舅二姐","邢夫人","younger_sister","妹"
"邢德全","邢夫人","younger_brother","弟"
"张大老爷","邢夫人","old_relatives","老亲"
"邢忠","邢夫人","elder_brother","兄"
"张大老爷之女","张大老爷","daughter","女"
"刑秞烟","邢忠","daughter","女"
"李婶","李守中","sister_in_law","弟媳"
"李婶之弟","李婶","younger_brother","弟"
"李纹","李婶","daughter","女"
"甄宝玉","李绮","husband","夫"
"甄应嘉","甄宝玉祖母","son","子"
"甄夫人","甄应嘉","wife","妻"
"大姑娘","甄应嘉","daughter","女"
"二姑娘","甄应嘉","daughter","女"
"三姑娘","甄应嘉","daughter","女"
"袭人之母","袭人","mother","母亲"
"花自芳","袭人","elder_brother","兄"
"周琼之子","贾探春","husband","夫"
"林如海之父","林如海","father","父亲"
"林如海之祖","林如海","grandfather","祖父"
"林如海之子","林如海","son","子"
"李妈","贾巧姐","nurser","乳母"
"昭儿","贾琏","servant","奴仆"
"兴儿","贾琏","servant","奴仆"
"隆儿","贾琏","servant","奴仆"
"庆儿","贾琏","servant","奴仆"
"赵嬷嬷","贾琏","nurser","乳母"
"赵天梁","赵嬷嬷","son","子"
"赵天栋","赵嬷嬷","son","子"
"王信","贾琏","servant","奴仆"
"王信媳妇","贾琏","servant","奴仆"
"鲍二","贾琏","servant","奴仆"
"善姐","尤二姐","servant_girl","丫鬟"
"迎春乳母","贾迎春","nurser","乳母"
"王住儿媳妇","迎春乳母","daughter_in_law","子媳"
"绣桔","贾迎春","servant_girl","丫鬟"
"莲花儿","贾迎春","servant_girl","丫鬟"
"秦思祺","贾迎春","servant_girl","丫鬟"
"潘又安","秦思祺","boy_friend","男友"
"贾琮奶妈","贾琮","nurser","乳母"
"篆儿","刑秞烟","servant_girl","丫鬟"
"新进来的奶子","贾兰","nurser","奶妈"
"素云","李纨","servant_girl","丫鬟"
"碧月","李纨","servant_girl","丫鬟"
"抱琴","贾元春","servant_girl","丫鬟"
"李嬷嬷","贾宝玉","nurser","乳母"
"赵嬷嬷","贾宝玉","nurser","乳母"
"张嬷嬷","贾宝玉","nurser","乳母"
"宋嬷嬷","贾宝玉","servant","奴仆"
"叶茗烟","贾宝玉","servant","奴仆"
"锄药","贾宝玉","servant","奴仆"
"扫红","贾宝玉","servant","奴仆"
"墨雨","贾宝玉","servant","奴仆"
"引泉","贾宝玉","servant","奴仆"
"扫花","贾宝玉","servant","奴仆"
"挑云","贾宝玉","servant","奴仆"
"伴鹤","贾宝玉","servant","奴仆"
"双瑞","贾宝玉","servant","奴仆"
"双寿","贾宝玉","servant","奴仆"
"老叶妈","叶茗烟","mother","母亲"
"李贵","李嬷嬷","son","子"
"李嬷嬷孙子","贾宝玉","servant","奴仆"
"王荣","贾宝玉","servant","奴仆"
"张若锦","贾宝玉","servant","奴仆"
"赵亦华","贾宝玉","servant","奴仆"
"周瑞","王夫人","servant","奴仆"
"周瑞女儿","周瑞","daughter","女"
"冷子兴","周瑞","son_in_law","女婿"
"周嫂子的儿子","周瑞","son","子"
"何三","周瑞","adopted_son","干儿子"
"白金钏","王夫人","servant_girl","丫鬟"
"白玉钏","王夫人","servant_girl","丫鬟"
"彩云","王夫人","servant_girl","丫鬟"
"彩鸾","王夫人","servant_girl","丫鬟"
"绣鸾","王夫人","servant_girl","丫鬟"
"绣凤","王夫人","servant_girl","丫鬟"
"白老媳妇","白金钏","mother","母亲"
"白老媳妇","白玉钏","mother","母亲"
"彩霞之母","彩霞","mother","母亲"
"小霞","彩霞","younger_sister","妹"
"小鹊","赵姨娘","servant_girl","丫鬟"
"小吉祥","赵姨娘","servant_girl","丫鬟"
"赵国基","赵姨娘","elder_brother","兄"
"钱槐","赵姨娘","elder_male_cousin","表兄"
"钱槐","贾环","servant","奴仆"
"雪雁","林黛玉","servant_girl","丫鬟"
"王嬷嬷","林黛玉","nurser","乳母"
"紫鹊","林黛玉","servant_girl","丫鬟"
"春纤","林黛玉","servant_girl","丫鬟"
"藕官","林黛玉","servant_girl","丫鬟"
"赖嬷嬷","赖大","mother","母亲"
"赖尚荣","赖大","son","子"
"赖大的女儿","赖大","daughter","女"
"来旺儿","王熙凤","servant","奴仆"
"旺儿媳妇","王熙凤","servant_girl","丫鬟"
"来喜家的","王熙凤","servant","奴仆"
"丰儿","王熙凤","servant_girl","丫鬟"
"彩明","王熙凤","servant_girl","丫鬟"
"林红玉","王熙凤","servant_girl","丫鬟"
"林之孝","林红玉","father","父亲"
"王善保","邢夫人","servant","奴仆"
"费婆子","邢夫人","servant_girl","丫鬟"
"金鸳鸯","贾母","servant_girl","丫鬟"
"琥珀","贾母","servant_girl","丫鬟"
"鹦鹉","贾母","servant_girl","丫鬟"
"珍珠","贾母","servant_girl","丫鬟"
"翡翠","贾母","servant_girl","丫鬟"
"玻璃","贾母","servant_girl","丫鬟"
"文官","贾母","servant_girl","丫鬟"
"傻大姐的娘","傻大姐","mother","母亲"
"金彩","鸳鸯","father","父亲"
"金文翔","鸳鸯","elder_brother","兄"
"多官","晴雯","elder_male_cousin","表哥"
"多浑虫父亲","晴雯","mothers_brother","舅"
"多姑娘儿","多官","wife","妻"
"吴贵","晴雯","elder_male_cousin","表兄"
"花芳官","贾宝玉","servant_girl","丫鬟"
"媚人","贾宝玉","servant_girl","丫鬟"
"麝月","贾宝玉","servant_girl","丫鬟"
"茜雪","贾宝玉","servant_girl","丫鬟"
"秋纹","贾宝玉","servant_girl","丫鬟"
"绮霞","贾宝玉","servant_girl","丫鬟"
"碧痕","贾宝玉","servant_girl","丫鬟"
"檀云","贾宝玉","servant_girl","丫鬟"
"四儿","贾宝玉","servant_girl","丫鬟"
"佳蕙","贾宝玉","servant_girl","丫鬟"
"坠儿","贾宝玉","servant_girl","丫鬟"
"紫绡","贾宝玉","servant_girl","丫鬟"
"良儿","贾宝玉","servant_girl","丫鬟"
"何春燕","贾宝玉","servant_girl","丫鬟"
"厨房中的柳家媳妇","柳五儿","mother","母亲"
"柳二媳妇的妹子","柳五儿","younger_sister","妹"
"哥嫂侄儿","柳五儿","nephew","侄"
"侍书","贾探春","servant_girl","丫鬟"
"翠墨","贾探春","servant_girl","丫鬟"
"艾官","贾探春","servant_girl","丫鬟"
"小蝉","贾探春","servant_girl","丫鬟"
"何婆","何春燕","mother","母亲"
"何婆","芳官","adopted_mother","干娘"
"小鸠儿","何春燕","younger_sister","妹"
"夏婆子","何春燕","maternal_aunt","姨妈"
"夏婆子","藕官","adopted_mother","干娘"
"夏婆子","小蝉","grandmother","外祖母"
"蒋玉菡","贾宝玉","friend","朋友"
"通判傅试","贾政","pupil","门生"
"傅秋芳","傅试","younger_sister","妹"
"太祖皇帝","先皇","father","父亲"
"太上皇","先皇","son","子"
"皇太后","太上皇","wife","妻"
"太妃","太上皇","kings_concubine","嫔妃"
"皇帝","太上皇","son","子"
"贾元春","皇帝","imperial_concubine","妃"
"吴贵妃","皇帝","imperial_concubine","妃"
"周贵人","皇帝","imperial_concubine","妃"
"周贵人父亲","周贵人","father","父亲"
"吴天佑","吴贵妃","father","父亲"
"戴权","皇帝","minister","臣"
"夏守忠","皇帝","minister","臣"
"贾代化","贾演","son","子"
"焦大","贾演","servant","奴仆"
"贾敷","贾代化","son","子"
"贾敬","贾代化","son","子"
"贾惜春","贾敬","daughter","女"
"史湘云爷爷","史侯","son","子"
"史鼐","史湘云爷爷","son","子"
"史鼎","史湘云爷爷","son","子"
"湘云母","史湘云爷爷","daughter_in_law","儿媳"
"史鼎的夫人","史鼎","wife","妻"
"史湘云","湘云母","daughter","女"
"卫若兰","史湘云","husband","夫"
"翠缕","史湘云","servant_girl","丫鬟"
"葵官","史湘云","servant_girl","丫鬟"
"周奶妈","史湘云","nurser","乳母"
"凤姐之祖王夫人之父","王公","son","子"
"王夫人之大兄凤姐之父","凤姐之祖王夫人之父","son","子"
"王子腾","凤姐之祖王夫人之父","son","子"
"王子胜","凤姐之祖王夫人之父","son","子"
"王夫人","凤姐之祖王夫人之父","daughter","女"
"薛姨妈","凤姐之祖王夫人之父","daughter","女"
"王成父","凤姐之祖王夫人之父","nephew","侄"
"老舅太太","王夫人之大兄凤姐之父","wife","妻"
"王仁","王夫人之大兄凤姐之父","son","子"
"王熙凤","王夫人之大兄凤姐之父","daughter","女"
"王子腾夫人","王子腾","wife","妻"
"王子腾之女","王子腾","daughter","女"
"保宁侯之子","王子腾之女","husband","夫"
"王成","王成父","son","子"
"王狗儿","王成","son","子"
"刘氏","王狗儿","wife","妻"
"王青儿","王狗儿","daughter","女"
"王板儿","王狗儿","son","子"
"刘姥姥","刘氏","mother","母亲"
"宝钗祖父","薛公","son","子"
"薛公之孙","宝钗祖父","son","子"
"薛宝琴父","宝钗祖父","son","子"
"薛姨妈","薛公之孙","wife","妻"
"薛宝钗","薛公之孙","daughter","女"
"薛蟠","薛公之孙","son","子"
"同喜","薛姨妈","servant_girl","丫鬟"
"同贵","薛姨妈","servant_girl","丫鬟"
"莺儿","薛宝钗","servant_girl","丫鬟"
"文杏","薛宝钗","servant_girl","丫鬟"
"喜儿","薛宝钗","servant_girl","丫鬟"
"蕊官","薛宝钗","servant_girl","丫鬟"
"夏金桂","薛蟠","wife","妻"
"老苍头","薛蟠","meme_ama","乳父"
"宝蟾","夏金桂","servant_girl","丫鬟"
"小舍儿","夏金桂","servant_girl","丫鬟"
"夏奶奶","夏金桂","mother","母亲"
"夏三","夏奶奶","son","子"
"臻儿","香菱","servant_girl","丫鬟"
"薛宝琴母","薛宝琴父","wife","妻"
"薛蝌","薛宝琴父","son","子"
"薛宝琴","薛宝琴父","daughter","女"
"邢岫烟","薛蝌","wife","妻"
"梅翰林之子","薛宝琴","husband","夫"
"小螺","薛宝琴","servant_girl","丫鬟"
"荳官","薛宝琴","servant_girl","丫鬟"
"梅翰林","梅翰林之子","father","父亲"
"贾瑞之父","贾代儒","son","子"
"贾瑞之母","贾瑞之父","wife","妻"
"贾瑞","贾瑞之父","son","子"
"贾琼","贾琼之母","son","子"
"贾四姐","贾琼之母","daughter","女"
"贾王扁","贾王扁之母","son","子"
"贾喜鸾","贾王扁之母","daughter","女"
"贾芸","五嫂子卜氏","son","子"
"卜世仁","五嫂子卜氏","brother","兄弟"
"小丫头子","贾芸","servant_girl","丫鬟"
"倪儿娘子","倪二","wife","妻"
"倪二女儿","倪二","daughter","女"
"马贩子王短腿","倪二","friend","友人"
"卜世仁娘子","卜世仁","wife","妻"
"卜银姐","卜世仁","daughter","女"
"王奶奶","卜世仁","neighbour","邻居"
"卜世仁店里伙计","卜世仁","partner","伙计"
"贾芹","周氏","son","子"
"金氏","贾璜","wife","妻"
"胡氏","金氏","elder_sister_in_law","嫂"
"金荣","胡氏","son","子"
"娇杏","贾化","wife","妻"
"贾雨村子","贾化","son","子"
"应天府门子","贾化","son","子"
"张如圭","贾化","friend","友人"
"王老爷","贾化","friend","友人"
"天子之妻","应天府门子","wife","妻"
"东安郡王穆莳拜","东平郡王","son","子"
"南安王太妃","南安郡王","wife","妻"
"南安郡王之孙","南安郡王","grandson","孙子"
"西宁郡王之孙","西宁郡王","grandson","孙子"
"西宁郡王妃","西宁郡王","wife","妻"
"北静王太妃","北静郡王","daughter_in_law","儿媳"
"北静王少妃","水溶","wife","妻"
"北静郡王长府官","水溶","minister","臣"
"镇国公诰命","牛清","wife","妻"
"镇国公诰命长男","牛清","son","子"
"牛继宗","牛清","grandson","孙子"
"柳芳","柳彪","grandson","孙子"
"陈瑞文","陈翼","grandson","孙子"
"马尚","马魁","grandson","孙子"
"侯孝康","侯明","grandson","孙子"
"缮国公诰命","缮国公","wife","妻"
"石光珠","缮国公","grandson","孙子"
"蒋子宁","平原侯","grandson","孙子"
"谢鲸","定城侯","grandson","孙子"
"戚建辉","襄阳侯","grandson","孙子"
"裘良","景田侯","grandson","孙子"
"锦乡侯诰命","锦乡侯","wife","妻"
"韩奇","锦乡侯","son","子"
"冯紫英","神武将军冯唐","son","子"
"锦田侯诰命","马道婆","donor","施主"
"蕊官","地藏庵的圆心","pupil","徒弟"
"藕官","圆心","pupil","徒弟"
"智能儿","净虚","pupil","徒弟"
"智善","净虚","pupil","徒弟"
"智通","净虚","pupil","徒弟"
"于老爷","净虚","donor","施主"
"胡老爷","净虚","donor","施主"
"胡老爷太太","净虚","donor","施主"
"胡老爷公子","净虚","donor","施主"
"张大财主","净虚","donor","施主"
"花芳官","智能","pupil","徒弟"
"张金哥","张大财主","daughter","女"
"李公子","张金哥","employer","雇主"
"长安原任守备","李公子","father","父亲"
"李衙内","长安府府太爷","mothers_brother","小舅子"
"贾代化","贾演","son","子"
"焦大","贾演","servant","奴仆"
"贾敷","贾代化","son","子"
"贾敬","贾代化","son","子"
"尤氏","尤老娘","daughter","女"
"贾蔷","贾演","great_great_grandson","玄孙"
"龄官","贾蔷","girl_friend","女友"
"佩凤","贾珍","concubine","妾"
"偕鸾","贾珍","concubine","妾"
"文花","贾珍","concubine","妾"
"茄官","尤氏","servant_girl","丫鬟"
"银蝶","尤氏","servant_girl","丫鬟"
"炒豆儿","尤氏","servant_girl","丫鬟"
"秦可卿","贾蓉","wife","妻"
"胡氏","贾蓉","step_wife","续弦"
"许氏","贾蓉","step_wife","续弦"
"入画","贾惜春","servant_girl","丫鬟"
"彩屏","贾惜春","servant_girl","丫鬟"
"彩儿","贾惜春","servant_girl","丫鬟"
"瑞珠","秦可卿","servant_girl","丫鬟"
"宝珠","秦可卿","servant_girl","丫鬟"
"秦钟","秦业","son","子"
"智能儿","秦钟","girl_friend","女友"
"净虚","智能儿","master","师父"
"智善","净虚","pupil","徒弟"
"智通","净虚","pupil","徒弟"
"喜儿","贾珍","servant","奴仆"
"寿儿","贾珍","servant","奴仆"
"尤三姐","柳湘莲","girl_friend","女友"
"杏奴","柳湘莲","servant","奴仆"
"尤二姐","贾琏","concubine","妾"
"善姐","尤二姐","servant_girl","丫鬟"
"甄宝玉","李绮","husband","夫"
"贾演","贾源","elder_brother","兄"
"贾赦","贾代善","son","子"
"贾政","贾代善","son","子"
"贾敏","贾政","younger_sister","妹"
"邢夫人","贾赦","wife","妻"
"贾琏","贾赦","son","子"
"贾琮","贾赦","son","子"
"王夫人","贾政","wife","妻"
"贾元春","贾政","daughter","女"
"贾宝玉","贾政","son","子"
"贾探春","贾政","daughter","女"
"贾环","贾政","son","子"
"王熙凤","贾琏","wife","妻"
"贾巧姐","贾琏","daughter","女"
"贾兰","贾珠","son","子"
"李纨","贾珠","wife","妻"
"孙绍祖","贾迎春","husband","夫"
"李守中","李纨","father","父亲"
"李绮","李婶","daughter","女"
"甄宝玉","甄应嘉","son","子"
"林如海","贾敏","husband","夫"
"林黛玉","林如海","daughter","女"
"王嬷嬷","贾宝玉","nurser","乳母"
"彩霞","王夫人","servant_girl","丫鬟"
"傻大姐","贾母","servant_girl","丫鬟"
"晴雯","贾宝玉","servant_girl","丫鬟"
"篆儿","贾宝玉","servant_girl","丫鬟"
"柳五儿","贾宝玉","servant_girl","丫鬟"
"贾珍","贾敬","son","子"
"贾母","史侯","daughter","女"
"香菱","薛蟠","concubine","妾"
"倪二","贾芸","friend","友人"
"水溶","北静郡王","grandson","孙子"
"尤氏","贾珍","wife","妻"
"尤二姐","尤老娘","daughter","女"
"尤三姐","尤老娘","daughter","女"
"贾蓉","贾珍","son","子"
"秦可卿","秦业","daughter","女"

Neo4j入门学习笔记相关推荐

  1. dubbo入门学习笔记之入门demo(基于普通maven项目)

    注:本笔记接dubbo入门学习笔记之环境准备继续记录; (四)开发服务提供者和消费者并让他们在启动时分别向注册中心注册和订阅服务 需求:订单服务中初始化订单功能需要调用用户服务的获取用户信息的接口(订 ...

  2. Crypto++入门学习笔记(DES、AES、RSA、SHA-256)

    Crypto++入门学习笔记(DES.AES.RSA.SHA-256) 背景(只是个人感想,技术上不对后面的内容构成知识性障碍,可以skip): 最近,基于某些原因和需要,笔者需要去了解一下Crypt ...

  3. 机器学习入门学习笔记:(4.2)SVM的核函数和软间隔

    前言 之前讲了有关基本的SVM的数学模型(机器学习入门学习笔记:(4.1)SVM算法).这次主要介绍介绍svm的核函数.软间隔等概念,并进行详细的数学推导.这里仅将自己的笔记记录下来,以便以后复习查看 ...

  4. 机器学习入门学习笔记:(3.2)ID3决策树程序实现

    前言 之前的博客中介绍了决策树算法的原理并进行了数学推导(机器学习入门学习笔记:(3.1)决策树算法).决策树的原理相对简单,决策树算法有:ID3,C4.5,CART等算法.接下来将对ID3决策树算法 ...

  5. 机器学习入门学习笔记:(2.3)对数几率回归推导

    理论推导   在以前的博客(机器学习入门学习笔记:(2.1)线性回归理论推导 )中推导了单元线性回归和多元线性回归的模型.   将线性回归模型简写为:y=ωTx+by = \omega^Tx+b:   ...

  6. 机器学习入门学习笔记:(2.2)线性回归python程序实现

      上一篇博客中,推导了线性回归的公式,这次试着编程来实现它.(机器学习入门学习笔记:(2.1)线性回归理论推导 )   我们求解线性回归的思路有两个:一个是直接套用上一篇博客最后推导出来的公式:另一 ...

  7. 汇编入门学习笔记 (十二)—— int指令、port

    疯狂的暑假学习之  汇编入门学习笔记 (十二)--  int指令.port 參考: <汇编语言> 王爽 第13.14章 一.int指令 1. int指令引发的中断 int n指令,相当于引 ...

  8. node入门-学习笔记

    文章目录 node入门-学习笔记 node 启动node服务 重构express-run node入门-学习笔记 node 为什么后端要用node, 因为它是js js运行时环境 主要使用expres ...

  9. 计算机指令int,汇编入门学习笔记 (十二)—— int指令、端口

    疯狂的暑假学习之  汇编入门学习笔记 (十二)--  int指令.端口 参考: <汇编语言> 王爽 第13.14章 一.int指令 1. int指令引发的中断 int n指令,相当于引发一 ...

最新文章

  1. python3 的 zip
  2. hihoCoder1228(2015北京网络赛B题)
  3. Github项目推荐 | OI Wiki:编程竞赛最全知识整合站点
  4. Eclipse中DTD验证导致无法进行代码提示的问题 .
  5. 星空下的痕迹 Jenkins学习(四)----------windows下Publish over FTP插件应用
  6. [九度][何海涛] 跳台阶
  7. [js] localStorage什么时候过期?
  8. Python sqlalchemy orm 多对多外键关联
  9. java小_Java小知识点总结
  10. 【转】妈妈告诉我的细节
  11. 龙格库塔解一阶微分方程c语言,四阶龙格库塔法解微分方程
  12. python画图的函数_python画图函数
  13. IPD解读——市场管理(MM)方法论
  14. Linux 命令(186)—— atq 命令
  15. 三升序列20210314-20210413
  16. html5 canvas画椭圆形
  17. 从哲学的角度来看面向对象中的主体客体思维
  18. 黑白照片怎么变成彩色?分享一个转换小妙招
  19. Python:键值对
  20. 点云生成鸟瞰图(Python)

热门文章

  1. 30组易混易错词汇辨析,柯桥成人英语培训哪家好
  2. laravel中maatwebsite/excel的load不可以用的解决办法
  3. 斗罗大陆手游服务器维护,斗罗大陆魂师对决怎么进不去 原因分析及解决方案...
  4. [STM32F1]基于STM32 HAL库实现鼠标键盘摇杆的USB复合设备
  5. 搜索已死,谁来烧纸。
  6. linux 抓取 组播数据,tcpdump指令抓取组播数据
  7. 软考高项笔记(二):成本类计算
  8. Adruino驱动SHT31测量温湿度
  9. 考勤情况记录数据表、短信发送记录表设计
  10. Caught exception while allowing TestExecutionListener [org.xx.ServletTestExecutionListener@xx]