[數據庫]Neo4j圖數據庫搭建快速入門

[數據庫]圖數據庫基礎入門

概念

圖數據庫是一種使用圖結構(節點、邊和屬性)進行數據存儲和查詢的數據庫管理系統。與傳統的關系型數據庫不同,圖數據庫專注于實體之間的關系,特別適合處理高度互聯的數據。常見的圖數據庫包括:Neo4j、JanusGraph、HugeGraph…
在這里插入圖片描述

核心優勢:

  • 高效處理復雜關系查詢
  • 直觀的數據模型表示
  • 靈活應對數據模式變化
  • 卓越的性能(尤其對多跳查詢)

主要有以下特點:

  1. 節點(Node):表示具體實體(如人物、地點、產品)
  • 可擁有標簽(Label)進行分類
  • 可包含屬性(鍵值對)
  • 例如:湯姆漢克斯Actor,Actor是演員代表分類,湯姆漢克斯代表實際的節點
  1. 關系(Relationship):連接節點的有向邊
  • 必須有類型或可以理解為具體的關系(如:ACT表示演員與影視作品出演的關系、PURCHASED表示人與商品之間的購買關系)
  • 可包含屬性,例如:xxx出演了什么電影,出演這個邊(關系)中,我們可以設置具體的時間,具體什么時候出演了這個電影
  1. 屬性(Properties):節點和關系的鍵值對屬性
  2. 標簽(Labels):節點的分類標記,如:Movie電影、Person人、Actor演員等

應用場景

  1. 社交網絡分析
  • 好友推薦系統
  • 影響力傳播分析
  1. 推薦引擎
  • “購買此商品的用戶也購買了…”
  • 個性化內容推薦
  • 相關好友推送
  1. 欺詐檢測
  • 識別異常交易模式
  • 發現欺詐團伙關聯
  1. 知識圖譜
  • 構建企業知識庫
  • 語義搜索系統
  • 血緣圖譜
  1. 網絡與IT運維
  • 基礎設施依賴關系映射
  • 影響分析
  1. 供應鏈管理
  • 物流路徑優化
  • 風險傳播分析

安裝[neo4j]

這里以neo4j為例,講解圖數據庫基本使用。
官方網站:https://neo4j.com/
官方教程地址:https://neo4j.ac.cn/docs/

大家可以直接通過官網下載,也可以通過docker方式下載使用,我這里演示docker安裝:

#  創建映射目錄
mkdir -p /Users/ziyi/docker-home/neo4j/{data,logs,conf,import}docker run -d --name neo4j -p 7474:7474 -p 7687:7687 -v /Users/ziyi/docker-home/neo4j/data:/data -v /Users/ziyi/docker-home/neo4j/plugins:/var/lib/neo4j/plugins -v /Users/ziyi/docker-home/neo4j/logs:/logs -v /Users/ziyi/docker-home/neo4j/conf:/var/lib/neo4j/conf -v /Users/ziyi/docker-home/neo4j/import:/var/lib/neo4j/import -e NEO4J_AUTH=neo4j/12345678 neo4j:5.26.6# 訪問瀏覽器,并輸入 neo4j / 12345678 登錄賬號
http://localhost:7474/browser/preview/

使用

1. cypher語法

創建節點

// 其中Person為標簽/類型,Alice為一個具體的節點,name、age是Alice這個具體節點的屬性
CREATE (:Person {name: 'Alice', age: 30})
CREATE (:Person {name: 'Bob', occupation: 'Engineer'})

在這里插入圖片描述

最后效果:
在這里插入圖片描述

創建關系

//找到Alice和Bob兩個節點,并為其創建FRIENDS朋友關系,同時為這個關系設置屬性
MATCH (a:Person), (b:Person)
WHERE a.name = 'Alice' AND b.name = 'Bob'
CREATE (a)-[:FRIENDS {since: '2020-01-01'}]->(b)

在這里插入圖片描述

查詢數據

// 查找所有人員
MATCH (p:Person) RETURN p// 查找Alice的朋友
MATCH (alice:Person {name: 'Alice'})-[:FRIENDS]->(friend)
RETURN friend.name

在這里插入圖片描述

更新數據

MATCH (p:Person {name: 'Alice'})
SET p.age = 31, p.location = 'New York'
RETURN p

在這里插入圖片描述

刪除數據

// 刪除節點及其關系
MATCH (p:Person {name: 'Bob'})
DETACH DELETE p// 刪除關系
// 刪除任意方向的FRIENDS關系
MATCH (t:Person {name: 'Tom'})-[r:FRIENDS]-(b:Person {name: 'Bob'})
DELETE r// 刪除所有數據(謹慎使用!)
MATCH (n) DETACH DELETE n

在這里插入圖片描述

多跳查詢

//補充數據用于展示多跳查詢
CREATE (:Person {name: 'Tom', age: 30});
MATCH (a:Person), (b:Person)
WHERE a.name = 'Tom' AND b.name = 'Bob'
CREATE (a)-[:FRIENDS]->(b),(b)-[:FRIENDS]->(a);// 查找Alice的2度好友(朋友的朋友)
MATCH (alice:Person {name: 'Alice'})-[:FRIENDS*2]->(fof)
RETURN DISTINCT fof.name

在這里插入圖片描述

最短查詢

MATCH (a:Person {name: 'Alice'}), (b:Person {name: 'Tom'}),
path = shortestPath((a)-[*]-(b))
RETURN path

在這里插入圖片描述

聚合函數

MATCH (p:Person)
RETURN avg(p.age) AS averageAge, count(*) AS totalPeople

在這里插入圖片描述

2. 插件安裝[apoc]

neo4j圖數據庫可支持很多插件擴展,例如:apoc、

  1. apoc插件下載:https://github.com/neo4j/apoc/releases?page=1

neo4j與apoc版本對應關系:https://neo4j.ac.cn/labs/apoc/5/installation/

在這里插入圖片描述

下載與自己neo4j匹配的插件即可,因為開始通過docker搭建neo4j時,我們已經做了plugins的映射:-v /Users/ziyi/docker-home/neo4j/plugins:/var/lib/neo4j/plugins。所以我們直接將插件下載到本地/Users/ziyi/docker-home/neo4j/plugins目錄即可。
在這里插入圖片描述
2. 配置文件新增配置
neo4j.conf新增:

dbms.security.procedures.unrestricted=apoc.*
dbms.security.procedures.allowlist=apoc.*

在這里插入圖片描述

  1. 重啟容器
# 重啟neo4j容器
docker ps | grep neo4j
docker restart 容器ID
  1. 來到可視化頁面,輸入下面命令驗證插件是否安裝成功
return apoc.version()

在這里插入圖片描述
5. apoc里面有很多內置函數,可直接使用
在這里插入圖片描述
效果:
在這里插入圖片描述

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

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

相關文章

本地數據庫有數據,web頁面無信息顯示,可能是pymysql的版本問題【pymysql連接本地數據庫新舊版本的區別】

pymysql連接本地數據庫新舊版本的區別新版本老版本python web下的settings文件 新版本 的pymysql 連接本地數據庫: mysql_conn pymysql.connect(hostself.conn_infos["HOST"],userself.conn_infos["USER"],passwordself.conn_infos["PAS…

【Linux-云原生-筆記】Haproxy相關

一、概念HAProxy(High Availability Proxy)是一款開源的高性能 TCP/HTTP 負載均衡器 和 反向代理 軟件,被廣泛應用于構建高可用、高并發的現代網絡架構。核心功能:負載均衡(Load Balancing)支持四層&#x…

智慧能源合同解決方案

01 能源行業合同管理核心痛點 1)長期風險沉淀與動態環境失配:合同穩定性的根本矛盾 超長周期下的風險累積:20~30年的購售電協議(PPA)、EPC合同需覆蓋技術迭代(如光伏組件衰減率)、政策轉向&am…

MeterSphere平臺,接口自動化腳本編寫常用操作

文章目錄1. 前置準備2. 項目環境設置3. 創建接口3.1 創建接口API3.2 測試接口API3.3 設置接口case4. 場景接口自動化4.1 創建自動化場景4.2 場景化操作說明4.2.1 設置腳本場景變量4.2.2 接口列表導入4.2.3 場景導入4.2.4 自定義請求4.2.5 事務控制器4.2.6 等待控制器4.2.7 循環…

C 語言介紹

C語言是由Dennis Ritchie開發的,用于創建與硬件設備(例如驅動程序,內核等)直接交互的系統應用程序。C編程被認為是其他編程語言的基礎,這就是為什么它被稱為母語。C是一種功能強大的通用編程語言。它可以用于開發操作系…

AI產品經理面試寶典第48天:產品設計與用戶體驗優化策略

1. 用戶體驗分析與產品設計邏輯 1.1 問:如何通過用戶反饋優化AI產品體驗? 答: 建立反饋閉環機制:通過應用內評分、用戶訪談、行為埋點三維度收集數據,例如某語音助手產品通過NLP分析用戶糾錯語句,發現"誤喚醒"問題占比37%; 優先級排序模型:采用Kano模型量化…

基于springboot的在線教育系統(源碼+論文)

一、開發環境 本在線教育系統主要采用以下技術棧進行開發: B/S結構:基于瀏覽器/服務器模式,便于用戶通過互聯網訪問系統,無需安裝客戶端軟件。Spring Boot框架:簡化了新Spring應用的初始搭建及開發過程,提…

Ubuntu 系統上部署禪道

在 Ubuntu 系統上部署禪道可以按照以下步驟進行,以下是基于禪道開源版的部署流程: 1. 安裝必要依賴 首先安裝禪道運行所需的環境(以 Ubuntu 20.04/22.04 為例): bash # 更新系統包 sudo apt update && sudo…

【vue-8】Vue3 Options API 生命周期函數全面解析

在 Vue.js 開發中,理解組件的生命周期是構建健壯應用程序的關鍵。雖然 Vue3 引入了 Composition API,但 Options API 仍然是許多開發者的首選,特別是對于從 Vue2 遷移的項目或更喜歡基于選項的代碼組織的團隊。本文將深入探討 Vue3 中 Option…

周志華《機器學習導論》第8章 集成學習 Ensemble Learning

目錄 8.1 個體與集成 8.2 Boosting Ada(Adaptive)Boost 8.3 Bagging 8.4 隨機森林 8.5 結合策略 8.5.1 平均法 8.5.2 投票法 8.5.3 學習法 8.6 多樣性 8.6.1 誤差-分歧分解 error-ambiguity 8.6.2 多樣性度量 8.6.3 多樣性增強 8.1 個體與集…

Embassy實戰:Rust嵌入式異步開發指南

嵌入式異步框架 Embassy 實例 以下是關于嵌入式異步框架 Embassy 的實用示例,涵蓋常見外設操作、多任務協作和硬件交互場景。示例基于STM32和Raspberry Pi Pico等平臺,使用Rust語言編寫。 GPIO 控制 use embassy_stm32::gpio::{Input, Output, Pull, Speed}; use embassy_…

ChatGPT桌面版深度解析

ChatGPT桌面版深度解析:功能、安裝與高效使用全攻略 一、核心功能全景解析 (一)全場景交互體系 全局熱鍵喚醒 支持MacOS(Option空格)與Windows(Alt空格)全局快捷鍵,實現跨應用無縫調…

RLVR的一種擴展方案--RLPR論文閱讀

論文鏈接:RLPR: EXTRAPOLATING RLVR TO GENERAL DOMAINS WITHOUT VERIFIERS 文章目錄簡介RLPRRLVR概率獎勵/Probability Reward獎勵設計標準差過濾總結簡介 可驗證獎勵的強化學習(Reinforcement Learning with Verifiable Rewards, RLVR)在提升大語言模型&#xff…

odoo歐度小程序——添加用戶

odoo歐度小程序添加登錄用戶 1. 直接在登錄用戶頁面添加用戶點擊 添加登錄用戶輸入用戶和密碼,點擊登錄驗證進入odoo頁面2. 在用戶切換頁面添加用戶點擊選擇切換用戶點擊域名彈出菜單點擊添加新用戶輸入用戶和密碼,點擊登錄驗證進入odoo頁面

Docker 應用數據備份、遷移方案

一、為什么要做Docker數據備份1、保障數據與配置的安全性防止數據丟失:Docker 容器本身是 “臨時性” 的(基于鏡像創建,刪除后數據默認丟失),但容器中運行的應用(如數據庫、日志服務)會產生持久…

【PTA數據結構 | C語言版】強連通分量

本專欄持續輸出數據結構題目集,歡迎訂閱。 文章目錄題目代碼題目 本題請你編寫程序,輸出給定有向圖中的各個強連通分量,并統計強連通分量的個數。 輸入格式: 輸入首先在第一行給出 2 個整數,依次為有向圖的頂點數 n&…

idea部署新項目時,用自定義的maven出現的問題解決

出現這個問題是因為maven版本和idea版本不兼容,例如圖示是maven3.9和idea2021.3的版本不兼容,maven換成3.8.x即可解決

OCR 身份識別:讓身份信息錄入場景更高效安全

在銀行柜臺開戶、線上平臺實名認證等場景中,身份信息錄入是基礎環節,OCR 身份識別產品正成為提升效率與安全性的關鍵。?傳統人工錄入身份證信息,不僅耗時久,還易因手誤導致姓名、號碼出錯,影響業務辦理進度。而 OCR 身…

Web 服務器和Web 中間件

一、什么是 Web 中間件 Web 中間件(Web Middleware)是運行在 Web 服務器與實際業務程序之間的一層“膠水”軟件,用來統一處理公共事務,讓開發者專注寫業務邏輯。常見職責: 請求/響應攔截(鑒權、日志、跨域、…

Paimon的部分更新以及DeleteVector實現

背景 本文基于 Paimon 0.9 出于對與Paimon內部的DeleteVctor的實現以及部分更新的實現進行的源碼閱讀。 關于 DeleteVector的介紹可以看這里 說明 對于Paimon來說無論是Spark中使用還是Flink使用,后面的邏輯都是一樣的,所以我們以Spark為例來說。所以…