Neo4j安裝部署及python連接neo4j操作

Neo4j安裝部署及python連接neo4j操作

  1. Neo4j安裝和環境配置
    安裝依賴庫:
    sudo apt-get install wget curl nano software-properties-common dirmngr apt-transport-https gnupg gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -y
    增加Neo4 GPG key:
    curl -fsSL https://debian.neo4j.com/neotechnology.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/neo4j.gpg
    添加Neo4j倉庫:
    echo “deb [signed-by=/usr/share/keyrings/neo4j.gpg] https://debian.neo4j.com stable latest” | sudo tee -a /etc/apt/sources.list.d/neo4j.list
    更新倉庫源并安裝Neo4j:
    sudo apt-get update && sudo apt-get install neo4j -y
    啟用Neo4j;
    sudo systemctl enable --now neo4j
    允許外部連接:
    sudo nano /etc/neo4j/neo4j.conf
    修改內容:server.default_listen_address=0.0.0.0
    重啟服務:
    sudo systemctl restart neo4j
    修改系統Host文件:
    sudo nano /etc/hosts
    添加上主機的ip地址和主機名

訪問主機或者服務器的7474端口,登陸neo4j
在這里插入圖片描述

2.實現簡單的圖數據庫
以Kaggle上的arXiv數據集(https://www.kaggle.com/datasets/Cornell-University/arxiv)為實驗數據
下載后,文件默認為json文件(arxiv-metadata-oai-snapshot.json)
在這里插入圖片描述

通過以下代碼讀取數據:
在這里插入圖片描述

數據結構如下圖所示:
在這里插入圖片描述

將數據簡化,留下id作為唯一索引,主要屬性title、authors_parsed、categories:
在這里插入圖片描述

考慮到數據龐大,測試采用在線版的Neo4j Sandbox,創建的鏈接可以保留3天
創建一個空白的sanbox,得到Bolt URL及其端口號:
在這里插入圖片描述

利用python連接到Neo4j并將數據存儲到數據庫:
在這里插入圖片描述
在數據庫中創建約束,以確保節點不重復,并設置索引:
conn.query(‘CREATE CONSTRAINT papers IF NOT EXISTS FOR (p:Paper) REQUIRE p.id IS UNIQUE’)
conn.query(‘CREATE CONSTRAINT authors IF NOT EXISTS FOR (a:Author) REQUIRE a.name IS UNIQUE’)
conn.query(‘CREATE CONSTRAINT categories IF NOT EXISTS FOR (c:Category) REQUIRE c.category IS UNIQUE’)

創建三個函數,用于為類別和作者節點創建數據框架:
在這里插入圖片描述

使用以下函數添加paper節點以及所有關系:
在這里插入圖片描述

采用批處理將處理加載到neo4j中:
在這里插入圖片描述
最后,在neo4j Sandbox中執行MATCH操作,得到graph,例如
MATCH (a:Author)-[:AUTHORED]->(p:Paper)-[:IN_CATEGORY]->(c:Category) RETURN a, p, c LIMIT 30
在這里插入圖片描述
通過以下代碼可以直接在python中進行和上面一樣的MATCH查詢,并返回結果:

query_string = '''
MATCH (a:Author)-[:AUTHORED]->(p:Paper)-[:IN_CATEGORY]->(c:Category) RETURN a, p, c LIMIT 30
'''
top_cat_df = pd.DataFrame([dict(_) for _ in conn.query(query_string)])
top_cat_df.head(20)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/17217.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/17217.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/17217.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

為什么并行化將會是下一代的區塊鏈解決方案?

原文標題:《Parallel Execution: The Next Generation of Blockchains》撰文:Paul Timofeev 、Mike Jin、Gabe Tramble 編譯:Chris,Techub News 區塊鏈是虛擬機,一種軟件基礎的計算模型,它運行在任何人都可…

DDOS攻擊和DOS攻擊有什么區別?

DDOS攻擊的全稱為分布式拒絕服務攻擊,能夠使很多個計算機在同一時間內遭受到攻擊;DOS攻擊的全稱則是拒絕服務攻擊,是攻擊者想辦法讓目標機器停止提供服務,對于DDOS攻擊和DOS攻擊我們經常會混淆,但是兩者之間在性質上還…

Pytorch深度學習實踐筆記10(b站劉二大人)

🎬個人簡介:一個全棧工程師的升級之路! 📋個人專欄:pytorch深度學習 🎀CSDN主頁 發狂的小花 🌄人生秘訣:學習的本質就是極致重復! 《PyTorch深度學習實踐》完結合集_嗶哩嗶哩_bilibi…

C++的第一道門坎:類與對象(一)

1.面向過程與面向對象 1.1面向過程 我們之前學習的C語言就是一種面向過程的語言,面向過程的語言強調的是具體實現的過程,一般用函數來具體實現。我們用面向過程的思想,就可以把炒菜分為以下幾個步驟: 1.2面向對象 而對于面向對象的語言而言…

【簡單介紹下容器是什么?】

🎥博主:程序員不想YY啊 💫CSDN優質創作者,CSDN實力新星,CSDN博客專家 🤗點贊🎈收藏?再看💫養成習慣 ?希望本文對您有所裨益,如有不足之處,歡迎在評論區提出…

【Spring】Spring AOP底層原理:JDK動態代理和CGLIB動態代理

目錄 1、代理模式 1.1、靜態代理 1.2、動態代理 2、JDK 動態代理 2.1、jdk動態代理簡介 2.2、使用JDK動態代理機制步驟 3、CGLIB 動態代理 3.1、CGLIB 動態代理的特性 3.2、CGLIB的核心類 3.3、CGLIB 動態代理步驟 4、JDK 和 CGLIB 創建代理對象的區別 ?編輯 1、…

通關!游戲設計之道Day16

皆大歡喜計費點 游戲行業中有一項設計顯得越來越重要,那就是計費點設計 是開發者琢磨出來的一系列手段,讓玩家買了游戲之后,還能繼續付費 對于把玩家跟他們的錢拆散,游戲開發者們總是樂此不疲 來看幾個能讓開發者額外多賺些錢…

(四)手把手教你內網穿透,實現外網主機訪問內網服務器

背景:書接上回, 服務器的使用-CSDN博客 課題組成員都有自己的賬號,且能通過內網訪問服務器,進行遠程連接了。我們知道內網中的主機可以訪問公網的主機,反之不可以訪問。那么如果課題組成員在家不在內網區域內&#x…

源碼編譯安裝LAMP與部署

目錄 一、LAMP架構的簡述 1.LAMP搭建時各組件安裝順序 二、編譯安裝Apache httpd服務 1.關閉防火墻,將安裝Apache所需軟件包傳到/opt目錄下 2.安裝環境依賴包?編輯 3.配置軟件模塊 4.編譯及安裝 5.優化配置文件路徑,并把httpd服務的可執行程序文…

基于51單片機的智能燈光控制系統

一.硬件方案 智能燈光控制系統由單片機最小系統、人體感應模塊、關照強度模塊、燈光控制模塊、電源模塊和燈泡組成。本文以STC89C52單片機為核心,通過利用光照度和紅外人體感應相結合主動與被動的探測方法,現了室內無人或者關照充足時燈光自動光燈&…

Kubernetes 容器資源管理Resources和探針Probe

資源配額 Resources 在 Kubernetes 中,resources 配置用于設置容器的資源請求和限制,以確保集群中的資源(如 CPU 和內存)得到合理分配和使用。 在之前的pod中,不寫 resources 字段。就意味著 Pod 對運行的資源要求“…

Java面試八股之AQS對資源的共享方式

AQS對資源的共享方式 AQS設計了一套靈活的機制,不僅支持獨占(Exclusive)鎖模式,也支持共享(Shared)鎖模式,使得資源可以被一個或者多個線程以不同的方式訪問。這兩種模式通過控制一個內部的vol…

技術速遞|宣布 Java on Azure 開發工具支持 Azure Functions Flex Consumption

作者:Jialuo Gan 排版:Alan Wang Azure Functions Flex Consumption 剛剛在微軟 Build 2024大會期間發布(詳情請參見本博客)。我們很高興地與大家分享,Azure Functions 的 IntelliJ Azure Toolkit 和 Maven 插件現在也…

pyqt QTableView表格控件

pyqt QTableView表格控件 QTableView效果代碼 QTableView QTableView 是 PyQt中的一個控件,用于顯示表格數據。它通常與 QAbstractItemModel 或其子類(如 QStandardItemModel)一起使用,以提供和管理表格中的數據。 效果 代碼 i…

wordpress主題 ACG美化插件v3.4.2支持zibll主題7b2主題美化

獨具一格的二次元風格,打造全新的子比美化方向 大部分代碼均為CSS、JS做成插件只是為了方便懶人小白站長 后臺全功能一覽,大部分美化均為網上通用流傳,

2.冒泡排序

樣例輸入 5 8 3 6 4 9 樣例輸出 3 4 6 8 9 以下是解題答案&#xff1a; class demo1{public static void main(String[] args) {Scanner scnnew Scanner(System.in);int[] array new int[scn.nextInt()];if(array.length>0&&array.length<200){for(int…

python列表訪問的深入解析

新書上架~&#x1f447;全國包郵奧~ python實用小工具開發教程http://pythontoolsteach.com/3 歡迎關注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目錄 一、正向索引與負索引的奧秘 二、切片&#xff1a;高效訪問多個元素 切片示例 三、切片的…

MIT6.828 Lab2-3 Sysinfo

目錄 一、實驗內容二、實驗過程2.1 已有的代碼2.2 需補充內容/kernel/kalloc.c修改&#xff08;剩余內存計算的函數&#xff09;/kernel/proc.c修改&#xff08;統計進程數量的函數&#xff09;/kernel/defs.h修改添加/kernel/sysinfo.c文件/kernel/syscall.h修改/kernel/sysca…

Java 文件操作和輸入輸出流

在 Java 編程中&#xff0c;文件操作和輸入輸出流是非常常見和重要的任務&#xff0c;它們允許你讀取和寫入文件、處理數據流等。 文件操作概述 文件操作是指對文件進行創建、讀取、寫入、刪除等操作的過程。在 Java 中&#xff0c;文件操作通常涉及到使用文件對象、輸入輸出…

OpenBayes 一周速覽|TripoSR 開源:1 秒即 2D 變 3D、經典 GTZAN 音樂數據集上線

公共資源速遞 This Weekly Snapshots &#xff01;5 個數據集&#xff1a; FER2013 面部表情識別數據集 GTZAN 音樂流派分類數據集 MVTec-AD 工業異常檢測數據集 UCAS-AOD 遙感目標檢測數據集 Oxford 102 Flowers 花卉圖片數據集 3 個教程&#xff1a; Latte 全球首個開…