下载和安装Neo4j

  1. 安装Java JDK
  2. 下载Neo4j安装文件
  3. 创建系统环境变量

Neo4j配置

配置文档存储在conf目录下,Neo4j通过配置文件neo4j.conf控制服务器的工作。默认情况下,不需要进行任意配置,就可以启动服务器。

核心数据文件的位置

例如,核心数据文件存储的位置,默认是在data/graph.db目录中,要改变默认的存储目录,可以更新配置选项:

# The name of the database to mount
#dbms.active_database=graph.db

Paths of directories in the installation.

dbms.directories.data=data

安全验证,默认是启用的

# Whether requests to Neo4j are authenticated.
# To disable authentication, uncomment this line
#dbms.security.auth_enabled=false

配置JAVA 堆内存的大小

# Java Heap Size: by default the Java heap size is dynamically calculated based on available system resources.
# Uncomment these lines to set specific initial and maximum heap size.
#dbms.memory.heap.initial_size=512m
#dbms.memory.heap.max_size=512m

网络连接配置

Neo4j支持三种网络协议(Protocol)

Neo4j支持三种网络协议(Protocol),分别是Bolt,HTTP和HTTPS,默认的连接器配置有三种,为了使用这三个端口,需要在Windows防火墙中创建Inbound Rules,允许通过端口7687,7474和7473访问本机

连接器的可选属性

listen_address:设置Neo4j监听的链接,由两部分组成:IP地址和端口号(Port)组成,格式是:<ip-address>:<port-number>

设置默认的监听地址

设置默认的网络监听的IP地址,该默认地址用于设置三个网络协议(Bolt,HTTP和HTTPs)的监听地址,即设置网络协议的属性:listen_address地址。在默认情况下,Neo4j只允许本地主机(localhost)访问,要想通过网络远程访问Neo4j数据库,需要修改监听地址为 0.0.0.0,这样设置之后,就能允许远程主机的访问。

# With default configuration Neo4j only accepts local connections.
# To accept non-local connections, uncomment this line:
dbms.connectors.default_listen_address=0.0.0.0

分别设置各个网络协议的监听地址和端口

HTTP链接器默认的端口号是7474,Bolt链接器默认的端口号是7687,必须在Windows 防火墙中允许远程主机访问这些端口号。

# Bolt connector
dbms.connector.bolt.enabled=true
#dbms.connector.bolt.tls_level=OPTIONAL
#dbms.connector.bolt.listen_address=0.0.0.0:7687

HTTP Connector. There must be exactly one HTTP connector.

dbms.connector.http.enabled=true

dbms.connector.http.listen_address=0.0.0.0:7474

HTTPS Connector. There can be zero or one HTTPS connectors.

dbms.connector.https.enabled=true

dbms.connector.https.listen_address=0.0.0.0:7473

启动Neo4j程序

通过控制台启动Neo4j程序

点击组合键:Windows+R,输入cmd,启动DOS命令行窗口,切换到主目录,以管理员身份运行命令:

./neo4j.bat console

把Neo4j安装为服务(Windows Services)

安装和卸载服务:

bin\neo4j install-service
bin\neo4j uninstall-service

启动服务,停止服务,重启服务和查询服务的状态:

./neo4j.bat start
./neo4j.bat stop
./neo4j.bat restart
./neo4j.bat status

打开Neo4j集成的浏览器

Neo4j服务器具有一个集成的浏览器,在一个运行的服务器实例上访问 “http://localhost:7474/”,打开浏览器,显示启动页面

默认的host是bolt://localhost:7687,默认的用户是neo4j,其默认的密码是:neo4j,第一次成功登陆到Neo4j服务器之后,需要重置密码。

访问Graph Database需要输入身份验证,Host是Bolt协议标识的主机。

导入三元组

生成节点与关系csv文件

语句插入往往非常缓慢,当需要插入大量三元组时考虑使用Neo4j-import的方式。

这种方式有许多注意点

  1. 传入文件名的时候务必使用绝对路径。
  2. 在执行指令之前务必保证Neo4j处于关闭状态,如果不确定可以在Neo4j根目录下运行./bin/neo4j status 查看当前状态。
  3. 使用neo4j-admin import指令导入之前先将原数据库从neo4j_home/data/databases/graph.db/中移除。
  4. 写CSV文件的时候务必确保所有的节点的CSV文件的ID fileds的值都唯一、不重复。并且确保所有的边的CSV文件的START_ID 和 END_ID都包含在节点CSV文件中。

本人原三元组文件

两边为实体/属性,中间为关系

python程序

#!/usr/bin/env python
# _*_ coding:utf-8 _*_ import pandas as pd

import csv # 读取三元组文件

h_r_t_name = [":START_ID", "role", ":END_ID"]

h_r_t = pd.read_table("entity_sig.txt", decimal="\t", names=h_r_t_name)

print(h_r_t.info())

print(h_r_t.head()) # 去除重复实体

entity = set()

entity_h = h_r_t[':START_ID'].tolist()

entity_t = h_r_t[':END_ID'].tolist()

for i in entity_h:

entity.add(i)

for i in entity_t:

entity.add(i)

print(entity)

# 保存节点文件

csvf_entity = open("entity.csv", "w", newline='', encoding='utf-8')

w_entity = csv.writer(csvf_entity)

# 实体ID,要求唯一,名称,LABEL标签,可自己不同设定对应的标签

w_entity.writerow(("entity:ID", "name", ":LABEL"))

entity = list(entity)

entity_dict = {}

for i in range(len(entity)):

w_entity.writerow(("e" + str(i), entity[i], "my_entity"))

entity_dict[entity[i]] = "e"+str(i)

csvf_entity.close()

# 生成关系文件,起始实体ID,终点实体ID,要求与实体文件中ID对应,:TYPE即为关系

h_r_t[':START_ID'] = h_r_t[':START_ID'].map(entity_dict)

h_r_t[':END_ID'] = h_r_t[':END_ID'].map(entity_dict)

h_r_t[":TYPE"] = h_r_t['role']

h_r_t.pop('role')

h_r_t.to_csv("roles.csv", index=False)

实体文件

关系文件

导入文件

.\neo4j-admin.bat import --nodes D:\\python_workplaces\\get_kg\\entity.csv --relationships D:\\python_workplaces\\get_kg\\roles.csv

启动浏览器即可查看

参考文献

https://www.cnblogs.com/ljhdo/p/5521577.html

https://blog.csdn.net/sinat_26917383/article/details/82424508

https://blog.csdn.net/weixin_40322587/article/details/80846106

原文地址:https://www.jianshu.com/p/d4e524a7ba30

Neo4j基本使用及导入三元组的更多相关文章

  1. neo4j通过LOAD CSV导入结点和关系

    1.neo4j默认的导入入口是:安装路径/import,所以要将csv文件放在import目录下,像下面这样: 2.导入后中文乱码: 因为neo4j是utf-8的,而CSV默认保存是ANSI的,需要用 ...

  2. Neo4j百万级数据导入只需30s

    先上图:425万nodes.180万relationships只用了30s 243ms 项目需要生成关系图,开始考虑的是用Neo4j官网提供的REST API,从solr中查出2组数据先创建节点再创建 ...

  3. NEO4J亿级数据导入导出以及数据更新

    1.添加配置 apoc.export.file.enabled=true apoc.import.file.enabled=true dbms.directories.import=import db ...

  4. Neo4j入门日志(一)导入数据

    本文主要来源于: neo4j的官方文档 使用的是neo4j官方提供的导入方式,即使用import,在cmd中进行导入. 1.导入的基本方式 bin/neo4j-admin import --datab ...

  5. Neo4j学习案例【转】

    转自 打怪的蚂蚁 CSDN: https://blog.csdn.net/xgjianstart/article/details/77285334 neo4j有社区版本和企业版.社区版本是免费的,只支 ...

  6. Neo4j ETL工具快速上手:简化从关系数据库到图数据库的数据迁移

    注:本文系从https://medium.com/neo4j/tap-into-hidden-connections-translating-your-relational-data-to-graph ...

  7. NEO4J (二)

    README 整理 kernel.impl.coreapi 这个包包含核心API的直接实现.核心API是org.neo4j中定义的API.graphdb及其子包. 这里的类是实现细节,可能会在不通知的 ...

  8. csv导入数据

    1.关闭Neo4j服务器进程 2.删除graph.db数据库文件  /data/databases/  rm -rf graph.db 3.重新启动Neo4j服务器 4.数据导入import 5.wi ...

  9. Neo4J空间数据存储

    1.Neo4j Spatial 简介 1.1Neo4j Spatial概念 Neo4j Spatial项目是图数据库Neo4j的一个插件,它通过将空间数据映射到图模型(graph model),它将对 ...

随机推荐

  1. Macbook上打开多个终端的方法

    方法有如下两种 1.首先是的焦点在终端上(使用鼠标点击下终端).然后使用快捷键command+N 即可得到另一个终端界面. (如果现在光标的焦点在浏览器上,那么就是新打开一个浏览器窗口) 2.同样,光 ...

  2. Webpack中的sourcemap以及如何在生产和开发环境中合理的设置

    一 . 从Sourcemap和Data URL说起 (1)什么是Sourcemap? 我们在打包中,将开发环境中源代码经过压缩,去空格,babel编译转化,最终可以得到适用于生产环境的项目代码,这样处 ...

  3. Outlook 邮箱脱机工作解决方法

    在运维过程中,有时候会收到用户这样的抱怨:为什么别人发给我的邮件我都收不到,我的邮件也发不出去了? Outlook 2016图标上显示着一个红叉... 这种情况有时候是因为Outlook正在脱机工作, ...

  4. 分享调试SI4432的一些小经验(转)

    分享调试SI4432的一些小经验 最近使用 STM8F103 + SI4432 调无线,遇到问题不少,此处有参考过前辈的经验: 1.硬件把板给到我时USB烧录线带供电(5V),此供电接到LDO输出,就 ...

  5. 微软代码示例:ASP.NET 2.0 三层架构应用程序教程系列

    本文转自:http://www.codeusing.com/hi/uephee.wen/resource/view/170.aspx 资源分类:微软代码示例               更新日期:20 ...

  6. 25.Flutter中的表单 Radio RadioListTile Switch SwitchListTile 以及表单组件实现一个简单的学员登记系统(下)

    四.Radio.RadioListTile单选按钮组件 Radio常用属性: value单选的值. onChanged改变时触发. activeColor:选中的颜色.背景颜色 groupValue: ...

  7. 简单模拟CO模块

    promise方式: // 对co模块的简单模拟 function run(gen){ var g = gen(); function next(data){ var result = g.next( ...

  8. WinSCP 上传文件至Cetos 7 后用户无权限

    WinSCP是一个支持SSH的SCP文件传输软件. 可以用Windows环境向Linux环境传输文件,今天给新的Elasticsearch 服务器(cetos 7 )部署新的集群节点的时候,发现传输后 ...

  9. 【Leetcode_easy】788. Rotated Digits

    problem 788. Rotated Digits solution1: class Solution { public: int rotatedDigits(int N) { ; ; i< ...

  10. iOS-NSString值为Unicode格式(字符串编码转换成中文编码)

    + (NSString *)replaceUnicode:(NSString *)unicodeStr  {             NSString *tempStr1 = [unicodeStrs ...