Neo4j 是一种图数据库,特别适合管理和分析复杂的关系数据。
数据来源:http://openkg.cn/
导入到 Neo4j 的合适场景:
需要在物种分类中查找层级关系(如物种的科、属等)。
需要进行关系查询和图结构的分析。
想在分类树中进行图遍历(如沿着生物分类进行导航)。
在 Neo4j 中,每个物种可以作为一个节点(Node),不同的生物分类(界、门、纲、目、科等)可以用关系(Relationship)来表达。
使用neo4j用户执行命令导入csv文件
加载 CSV 数据并创建节点
LOAD CSV WITH HEADERS FROM 'file:///fish.csv' AS row
CREATE (:Fish {
id: row.ID,
name: row.name,
fish_name_en: row.fish_name_en,
fish_img_url: row.fish_img_url,
fish_imgs_url: row.fish_imgs_url,
bio_kingdom_cn: row.bio_kingdom_cn,
bio_kingdom_en: row.bio_kingdom_en,
bio_phylum_cn: row.bio_phylum_cn,
bio_phylum_en: row.bio_phylum_en,
bio_class_cn: row.bio_class_cn,
bio_class_en: row.bio_class_en,
bio_order_cn: row.bio_order_cn,
bio_order_en: row.bio_order_en,
bio_family_cn: row.bio_family_cn,
bio_family_en: row.bio_family_en,
bio_genus_cn: row.bio_genus_cn,
bio_genus_en: row.bio_genus_en,
bio_is_toxic: row.bio_is_toxic,
bio_is_economy: row.bio_is_economy,
bio_is_food: row.bio_is_food,
bio_is_view: row.bio_is_view,
bio_other_name_url: row.bio_other_name_url,
bio_introduction: row.bio_introduction
});
注意事项
这里需要注意的是,
Cypher 语法不支持像 Python 那样通过row[:ID]
的方式访问列。正确的访问方式是使用列名,如 row.ID
。
file:///fish.csv
是指 Neo4j 的 import 目录下的文件。如果文件不在该目录,需要将文件放入该目录或者修改路径。
在 Windows 系统中,Neo4j 的 import 目录通常位于 Neo4j 安装目录下。
我这里是通过Neo4j Desktop安装的(安装教程在上篇文章)
如果是通过 Neo4j Desktop 安装的 Neo4j,import 目录通常在项目或数据库目录下。
C:\Users\<YourUsername>\.Neo4jDesktop\relate-data\dbmss\<unique-db-id>\import\
执行成功
查询验证
MATCH (n) RETURN (n) limit 10