John이 상품을 Met에 판매하고 있다고 가정하자. Bob은 Bob과 Alen에게 모두 으로 제품을 판매하고 Alen은 상품을 John에게 다시 판매합니다. 내가 필요로하는 것은이 예에서와 같이 모든 닫힌 원을 반환하는 Cypher 쿼리입니다.John..Met..Alen Alen이 상품을 John에게 다시 판매하여 관계 등록 정보 (금액)가 가장 낮은 폐쇄 서클로 만들기 때문입니다. 어떻게 전체 데이터베이스에서이 작업을 수행 할 수 있습니까? 폐쇄 된 모든 서클과 분당 수량을 가져 오십시오. 감사합니다.닫힌 원 안에 모든 노드 및 관계 속성을 가져옵니다.
1
A
답변
3
Stefans 대답부터 시작하여 최소한 경로의 길이를 고려해야합니다.
start n=node(*)
match p=n-[:SELLS_TO*1..5]->n
return p, lenght(p)
으로 노드 당 단지 최단 경로 길이는 최단 경로를 얻으려면
start n=node(*)
match p=n-[:SELLS_TO*1..5]->n
return n, min(lenght(p))
: http://console.neo4j.org/r/wrm522
:start n=node(*)
match p=n-[:SELLS_TO*1..5]->n
with n, collect(nodes(p)) as nodes, min(length(nodes(p))) as l
return n, head(filter(p in nodes : length(p) = l)) as shortest_circle,l
를 예에 대한 Neo4j 콘솔을 참조하십시오
거기에 주목할만한 점은 전체 그래프를 스캔하면 원의 각 노드에 대해 동일한 원을 여러 번 반복합니다.
여기에는 nodes, length, collect, head 및 filter 함수와 min 집계가 사용됩니다. 참조 : http://docs.neo4j.org/chunked/milestone/query-function.html
스테판이 이미 말했듯이 모든 노드를 검색하는 것은 매우 비용이 많이 듭니다.
0
당신은 같은 쿼리를 할 수있는 :
start n=node(*)
match p=n-[:SELLS_TO*1..5]->n
return p
경우 5 루프의 최대 깊이 표준시.
예를 들어 Neo4j console을 참조하십시오. 그러나 "node (*)"를 사용하면 그래프의 크기에 따라 선형으로 확장되는 전역 쿼리가 트리거됩니다.
관련 문제
- 1. 원 안에 모든 직교 좌표를 계산합니다.
- 2. 속성을 가진 모든 노드
- 3. JTS로 원 안에 점
- 4. 두 노드 사이의 모든 경로를 가져옵니다. neo4j
- 5. simpleXML 속성을 기반으로 노드 노드를 가져옵니다.
- 6. jQuery는 모든 HTML 속성을 가져옵니다.
- 7. 동일한 속성을 가진 노드 간의 관계 만들기
- 8. Umbraco는 클래스 내부에서 노드 속성을 가져옵니다.
- 9. 원 안에 좌표 찾기
- 10. 원 안에 점
- 11. 원 안에 좌표를 계산하십시오.
- 12. 원 안에 공이 튀어 오름
- 13. 거리의 원 안에 서클을 그립니다.
- 14. neo4j 노드 ID 및 관계
- 15. 원 안에 Three.js 위치하는 정사각형
- 16. 원 안에 텍스트를 넣는 방법
- 17. 캔버스가 원 안에 객체를 옮깁니다.
- 18. neo4j 2.0에서 노드 및 모든 인바운드 관계 삭제
- 19. Neo4J 노드 및 관계 : 모든 것을 노드로 모델링해야합니까?
- 20. php dom 노드의 모든 속성을 가져옵니다
- 21. CSS : 모든 관계 속성을 선택하는 방법
- 22. 원 안의 포장 원
- 23. 개별 파일에서 AdvancedDataGrid의 닫힌 노드 설정
- 24. Neo4j 디자인 : 속성 대 "노드 및 관계"
- 25. Neo4j의 동적 노드 및 관계 생성
- 26. css 및 jquery로 원 안에 html 요소를 배열하십시오.
- 27. [Freebase] : 노드 사이의 관계 찾기
- 28. 모든 원 엘리먼트에 보냄 beleviour
- 29. XNA 게임 프로그래밍 : 원 안에 적을 스폰하십시오.
- 30. CreateCriteria Grails는이 hasMany의 관계 안에
닫힌 원에는 괜찮 으면 좋겠지 만 최소 금액은 얼마입니까? –
닫힌 원에 대해 시작 n = node (18) match (n) -> (a) -> (m) -> (s) -> (n) return n, a, m, s; –