| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 차트
- analyzer test
- license delete
- licence delete curl
- 900gle
- Elasticsearch
- Python
- query
- Java
- flask
- aggs
- springboot
- zip 파일 암호화
- Kafka
- aggregation
- ELASTIC
- matplotlib
- 파이썬
- Test
- zip 암호화
- high level client
- plugin
- sort
- token filter test
- Mac
- License
- TensorFlow
- MySQL
- docker
- API
Archives
- Today
- Total
개발잡부
그래프 DB - Neo4j 본문
반응형
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