Which query calculates the weighted shortest path using distance in Neo4j?
4 phương ánCó giải thích
Các phương án trả lời
Chọn một phương ánLời giảiChọn phương án để mở
Đáp án đúng: "MATCH p = shortestPath((from)-[:TO*]->(to)) WITH REDUCE(dist = 0, rel in rels(p) | dist + toInt(rel.dist)) AS distance RETURN path, distance". Trong Cypher của Neo4j, shortestPath tìm đường ngắn nhất qua các quan hệ TO với độ dài thay đổi (dấu sao), sau đó rels(p) lấy danh sách các cạnh trên đường p và REDUCE duyệt từng cạnh, cộng dồn thuộc tính dist (đã đổi sang số nguyên bằng toInt) vào biến tích luỹ bắt đầu từ 0; kết quả là tổng khoảng cách, tức trọng số của đường đi. "MATCH (a)-[:TO]->(b) RETURN path" chỉ khớp đúng một cạnh giữa hai nút, không có hàm tìm đường ngắn nhất và không tính trọng số nào. "MATCH (n)-[r]-() RETURN REDUCE(dist=0, r in r | dist + 1)" chỉ cộng 1 cho mỗi quan hệ nên đếm số cạnh, bỏ qua thuộc tính khoảng cách và cũng không có đường đi nào. "MATCH p=(a)-[:TO*]->(b) RETURN reduce(p)" gọi reduce thiếu biến tích luỹ và biểu thức cộng dồn nên không hợp lệ, và mẫu này trả mọi đường chứ không chọn đường ngắn nhất.
Cùng phần 13
Which Cypher query finds the shortest path from node A to node P?Có lời giảiCâu hỏiWhat command is used to view all nodes and relationships in a Neo4j graph?Có lời giảiCâu hỏiCypher does not include a specific command to find the shortest path in a graph network.Có lời giảiCâu hỏiCả 10 câu của chủ đề10 câu