반응형
Recent Posts
Recent Comments
관리 메뉴

개발잡부

그래프 DB - Neo4j 본문

카테고리 없음

그래프 DB - Neo4j

닉의네임 2025. 12. 9. 14:44
반응형

local 테스트용 설치

 

사전작업

- docker 설치

 

docker-compose.yml 

version: "3.8"

services:
  neo4j:
    image: neo4j:5.12
    container_name: neo4j
    ports:
      - "7474:7474"   # Web UI
      - "7687:7687"   # Bolt 
    environment:
      NEO4J_AUTH: "neo4j/2Engussla"   # ID/PW : neo4j / test1234 (원하면 바꿔)
    volumes:
      - neo4j_data:/data
      - neo4j_logs:/logs
    restart: unless-stopped
volumes:
  neo4j_data:
  neo4j_logs:

 

실행 

docker compose up -d 

 

접속 

http://localhost:7474/browser/

 

접속해보면 

 

 

이런 화면이 뜨는데 위에 입력창에 쿼리를 넣으면 됨. 생소하다 

근데 쿼리문은 더 생소하다. 

 

엔터프라이즈 버전이 아니면 neo4j DB 를 하나만 사용할 수 있다고 함.

 

conda 에 가상환경 만들고 데이터 입출력 테스트

 

from neo4j import GraphDatabase

URI = "bolt://localhost:7687"
USER = "neo4j"
PASSWORD = "2Engussla"

driver = GraphDatabase.driver(URI, auth=(USER, PASSWORD))

# ----------------------------------------------------
# 1) 기존 데이터 모두 삭제 (테스트 환경용)
# ----------------------------------------------------
def clear_all(tx):
    tx.run("MATCH (n) DETACH DELETE n")


# ----------------------------------------------------
# 2) 키워드 체인 생성
# ----------------------------------------------------
def create_keyword_chain(tx):
    query = """
    CREATE
      (k1:Keyword {name: "치킨"})-
      [:NEXT]->(k2:Keyword {name: "닭고기"})-
      [:NEXT]->(k3:Keyword {name: "조리식품"})-
      [:NEXT]->(k4:Keyword {name: "튀김"})-
      [:NEXT]->(k5:Keyword {name: "냉동식품"});
    """
    tx.run(query)


# ----------------------------------------------------
# 3) 잘 들어갔는지 조회
# ----------------------------------------------------
def print_keywords(tx):
    result = tx.run("MATCH (k:Keyword) RETURN k.name AS name")
    for record in result:
        print(record["name"])


# ----------------------------------------------------
# 메인 실행
# ----------------------------------------------------
if __name__ == "__main__":
    with driver.session() as session:

        print("기존 데이터 삭제")
        session.execute_write(clear_all)

        print("그래프 생성")
        session.execute_write(create_keyword_chain)

        print("저장된 키워드 확인:")
        session.execute_read(print_keywords)

    driver.close()

 

실행 결과 

(nlp) ➜  homeplus python start.py
기존 데이터 삭제...
그래프 생성...
저장된 키워드 확인:
치킨
닭고기
조리식품
튀김
냉동식품

 

 

자.. 근데 이걸 어따 쓴담..

반응형
Comments