下載下傳和安裝Neo4j
- 安裝Java JDK
- 下載下傳Neo4j安裝檔案
- 建立系統環境變量
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的方式。
這種方式有許多注意點:
- 傳入檔案名的時候務必使用絕對路徑。
- 在執行指令之前務必保證Neo4j處于關閉狀态,如果不确定可以在Neo4j根目錄下運作./bin/neo4j status 檢視目前狀态。
- 使用neo4j-admin import指令導入之前先将原資料庫從neo4j_home/data/databases/graph.db/中移除。
- 寫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