Professional Documents
Culture Documents
NEO4J
NEO4J
Bài hướng dẫn này nhằm mục tiêu đạt được các chuẩn đầu ra sau:
-
-
III. Nội dung hướng dẫn
5. Click bộ cài Neo4j Desktop và cài đặt theo hướng dẫn trên màn hình
7. Cuối cùng copy license và cung cấp cho bản đã cài đặt
KHOA CÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
227 Nguyễn Văn Cừ, Phường 4, Quận 5, TP.HCM 4.0
Điện thoại: (08) 38.354.266 – Fax: (08) 38.350.096
Sao chép
Làm quen việc tạo và truy vấn trên CSDL đồ thị Neo4j
1. Tạo một CSDL đồ thị. Ví dụ: create database [tên database]
Ví dụ tạo CSDL movies
Chạy câu lệnh dùng icon như trên hoặc nhấn phím Enter
2. Sử dụng CSDL vừa tạo. Ví dụ: :use [tên database]
3. Liệt kê tất cả CSDL trong hệ thống. Ví dụ: :dbs
Tạo dữ liệu node. Ví dụ tạo 1 node Movie và 3 node Person, cuối cùng tạo mối
quan hệ giữa các node
CREATE
(ThaiHoa)-[:ACTED_IN {roles:['Bình']}]->(TiecTrangMau),
(QuangDung)-[:DIRECTED]->(TiecTrangMau)
4. Xem các node movie và các quan hệ của nó trên CSDL đồ thị.
MATCH (mv:Movie) RETURN mv
Kết quả.
Ví dụ: Xây dựng chương trình HelloWorld tương tác với CSDL Neo4j
IResultCursor cursor;
IDriver driver = GraphDatabase.Driver("bolt://localhost:7687/db/test",
AuthTokens.Basic(_user, _password));
IAsyncSession session = driver.AsyncSession();
try
{
cursor = await session.RunAsync("MATCH(mv:Movie) return mv");
List<IRecord> lst = await cursor.ToListAsync();
}
catch (Exception ex)
{
}
KHOA CÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
227 Nguyễn Văn Cừ, Phường 4, Quận 5, TP.HCM 4.0
Điện thoại: (08) 38.354.266 – Fax: (08) 38.350.096
Kết quả:
()
(matrix)
(:Movie)
(matrix:Movie)
(matrix:Movie {title: "The Matrix"})
(matrix:Movie {title: "The Matrix", released: 1997})
(): Biểu diễn 1 node
(:Movie): Biểu diễn Label của node
KHOA CÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
227 Nguyễn Văn Cừ, Phường 4, Quận 5, TP.HCM 4.0
Điện thoại: (08) 38.354.266 – Fax: (08) 38.350.096
-->
-[role]->
-[:ACTED_IN]->
-[role:ACTED_IN]->
-[role:ACTED_IN {roles: ["Neo"]}]->
❖ Ví dụ mẫu
+-------------------+
| No data returned. |
+-------------------+
Nodes created: 1
Properties set: 2
Labels added: 1
Ví dụ 2.
+----------------------------------------+
| p |
+----------------------------------------+
| Node[1]{name:"Keanu Reeves",born:1964} |
+----------------------------------------+
1 row
Nodes created: 1
Properties set: 2
Labels added: 1
Ví dụ 3.
Tạo dữ liệu với cấu trúc phức tạp bao gồm các node và các mối quan hệ của nó.
Node Person a có mối quan hệ node Movie m với quan hệ ACTED_IN, Node Person
d có mối quan hệ với node m với quan hệ DIRECTED
Read
❖ Đọc tất cả các node
Ví dụ: MATCH (n) RETURN n
❖ Đọc tất cả các node lọc theo Label
Ví dụ: MATCH (movie:Movie) RETURN movie.title
Tìm tất cả các title của các node có Lable là Movie.
❖ Tìm các node có liên quan
KHOA CÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
227 Nguyễn Văn Cừ, Phường 4, Quận 5, TP.HCM 4.0
Điện thoại: (08) 38.354.266 – Fax: (08) 38.350.096
Đổi tên tác giả, đầu tiên load tên tác giả, sau đó thực hiện thay đổi giá trị mới
cho thuộc tính Name
Ví dụ:
RETURN p
Delete
Ví dụ:
Muốn xóa node tác giả Hồ Bảo Quốc, đầu tiên xóa mối quan hệ tác giả với Book
MATCH (p:Author {name: 'Ho Bao Quoc'})-[r:AUTH_IN]-(book)
DELETE r
Sau đó tiếp tục xóa tác giả
MATCH (p:Author {name: 'Ho Bao Quoc'})DELETE p
Import data
❖ Import dữ liệu từ file csv
KHOA CÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
227 Nguyễn Văn Cừ, Phường 4, Quận 5, TP.HCM 4.0
Điện thoại: (08) 38.354.266 – Fax: (08) 38.350.096
Vì lý do bảo mật, Neo4j quy định các file cần import phải được đặt trong thư
mục import
Chuẩn bị các bước cần thiết như phần 1. Lần này chúng ta sẽ bắt đầu xây dựng một
Web API có làm việc với CSDL đồ thị Neo4J
Bước 1: Tạo Project Web API
Tạo Project Web ASP.NET và đặt tên WebAPINeo4j
Khai báo các thông tin cần thiết kết nối CSDL
Gọi hàm RunAsync và truyền giá trị là câu truy vấn Cypher
Lúc này giá trị trả về gồm list các Record. Toàn bộ mã nguồn thực hiện đọc các node
GiaoVien như sau:
// GET api/values
public async Task<IEnumerable<IRecord>> Get()
{
IResultCursor cursor;
return lst;
}
Để xem dữ liệu, hãy start project và truy cập API như sau:
http://localhost:56164/api/values
Với dữ liệu Json, chúng ta có thể rút trích và hiển thị trên giao diện phù hợp (Web, Mobile)
C:\Users\pmtu>python -V
Output: Python 3.9.1
Sau khi cài đặt python, tiến hành cài đặt driver neo4j dùng pip (Lưu ý cài đặt biến môi
trường cho pip - C:\Users\(window user)
\AppData\Local\Programs\Python\Python39\Scripts)
pip install neo4j
Sau khi cài đặt neo4j, gõ python và nhấn enter
Sau đó thực hiện các câu lệnh sau để làm đọc các node GiaoVien như ví dụ trước. Đây
là output của các câu lệnh.
>>> from neo4j import GraphDatabase
>>> driver =
GraphDatabase.driver("bolt://localhost:7687",auth=("neo4j","123456"))
>>> session = driver.session()
>>> result = session.run("MATCH(gv:GiaoVien) return gv")
>>> [print (record) for record in result]
<Record gv=<Node id=9 labels=frozenset({'GiaoVien'}) properties={'Ma': '1',
'HoTen': 'Tiet Gia Hong', 'NgaySinh': '1984', 'DiaChi': 'Tp HCM'}>>
<Record gv=<Node id=11 labels=frozenset({'GiaoVien'}) properties={'Ma': '2',
'HoTen': 'Ho Thi Hoang Vy', 'NgaySinh': '1985', 'DiaChi': 'Tp HCM'}>>
<Record gv=<Node id=12 labels=frozenset({'GiaoVien'}) properties={'Ma': '3',
'HoTen': 'Pham Minh Tu', 'NgaySinh': '1986', 'DiaChi': 'Ben Tre'}>>
[None, None, None]
>>>
KHOA CÔNG NGHỆ THÔNG TIN
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
227 Nguyễn Văn Cừ, Phường 4, Quận 5, TP.HCM 4.0
Điện thoại: (08) 38.354.266 – Fax: (08) 38.350.096
IV. Các yêu cầu & quy định chi tiết cho bài nộp