下载和安装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. 2018-2019-2 20165312《网络攻防技术》Exp 8 Web基础

    2018-2019-2 20165312<网络攻防技术>Exp 8 Web基础 目录 一.相关知识点总结 二.实验内容 三.实验步骤 四.实验总结及问题回答 五.实验中遇到的问题及解决方法 ...

  2. html中的lang标记有什么用

    html中的lang标记有什么用 一.总结 一句话总结: 为文档或元素设定主语言(即lang) 比如google浏览器有个自动翻译的功能,而自动翻译要看这个文档的语言 1.其它标签中设置lang属性? ...

  3. Centos7 安装svn步骤(宝塔面板)

    1.运行以下命令安装SVN yum install subversion 2.运行以下命令创建目录 mkdir /var/svn   3.依次运行以下命令创建版本库 cd /var/svn svnad ...

  4. Fiddler is not capturing web request from Firefox

    Fiddler is not capturing web request from Firefox You can also get the FiddlerHook plug in for Firef ...

  5. RVS PA-1800 功放参数

        RVS PA-1800大功率功放技术参数:     文章来源:外星人来地球 欢迎关注,有问题一起学习欢迎留言.评论

  6. angular之Rxjs异步数据流编程入门

    Rxjs介绍 参考手册:https://www.npmjs.com/package/rxjs 中文手册:https://cn.rx.js.org/ RxJS 是 ReactiveX 编程理念的 Jav ...

  7. PorterDuffXfermodeMode.DST_IN

    package com.loaderman.customviewdemo.view; import android.animation.ValueAnimator; import android.co ...

  8. ISO/IEC 9899:2011 条款6.4.4——常量

    6.4.4 常量 语法 1.constant: integer-constant floating-constant enumeration-constant character-constant 约 ...

  9. GoogleNet-ILSVRC-2014冠军

    Going deeper with convolutions-22层 https://my.oschina.net/u/876354/blog/1637819 那么,GoogLeNet是如何进一步提升 ...

  10. react起步——从零开始编写react项目

    # index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> ...