Neo4j : 가중치 관계, 쿼리에서 중요한 관계를 반영하는 방법은 무엇입니까?

사자

일부 관계가 다른 관계보다 훨씬 중요하고이를 나타 내기 위해 가중치가 부여 된 데이터가 있습니다. 예를 들어 다음과 같은 그래프가 있습니다.

  (city_a:City)-[:has{weight:10}]->(casino:Event)
  (city_a:City)-[:has{weight:1}]->(restaurant:Event)
  (city_a:City)-[:has{weight:30}]->(university:Event)    
  (city_a:City)-[:has{weight:25}]->(library:Event) 
   ......
  (city_b:City)-[:has{weight:2}]->(casino:Event)
  (city_b:City)-[:has{weight:2}]->(restaurant:Event)
  (city_b:City)-[:has{weight:5}]->(university:Event)    
  (city_b:City)-[:has{weight:10}]->(library:Event) 
   ......  

다음과 같은 입력이 있습니다.

  Input: {casino, restaurant, university}

그리고 나는 출력해야

  Output: city_a 

대부분의 관계가 다른 도시보다 가중치가 높기 때문입니다.

(아마도 내 그래프 모델이 옳지 않을 수도 있지만, 뭔가 생각할 수 없었습니다. 조언은 매우 환영합니다).

그렇다면이 경우에 대한 암호 쿼리를 작성하는 방법은 무엇입니까?

미리 감사드립니다!

InverseFalcon

다음은 원하는 입력 이벤트보다 적은 도시의 경우를 다루기 위해 'city_c'가 던져진 설명을 기반으로 한 예제 그래프입니다.

merge (city_a:City{name:'city_a'})
merge (city_b:City{name:'city_b'})
merge (city_c:City{name:'city_c'})

merge (casino:Event{name:'casino'})
merge (restaurant:Event{name:'restaurant'})
merge (university:Event{name:'university'})
merge (library:Event{name:'library'})

merge (city_a)-[:has{weight:10}]->(casino)
merge (city_a)-[:has{weight:1}]->(restaurant)
merge (city_a)-[:has{weight:30}]->(university)    
merge (city_a)-[:has{weight:25}]->(library) 

merge (city_b)-[:has{weight:2}]->(casino)
merge (city_b)-[:has{weight:2}]->(restaurant)
merge (city_b)-[:has{weight:5}]->(university)    
merge (city_b)-[:has{weight:10}]->(library) 

merge (city_c)-[:has{weight:100}]->(university) 

또한 입력 문자열에 의한 빠른 조회를 위해 : Event (name)에 대한 색인이 필요합니다 (이 특정 쿼리에 필요하거나 사용되지는 않지만 : City (name)에 대한 색인도 원할 것입니다)

create index on :Event(name)

여기에서 입력 이벤트에서 해당 이벤트가있는 도시로 일치하는 쿼리를 생성하고 도시 당 일치하는 이벤트 수와 등급 합계를 기준으로 정렬 할 수 있습니다.

대신 with ... as input쿼리를 매개 변수화하고 싶습니다.

with ['casino', 'restaurant', 'university'] as input
match (e:Event)<-[r:has]-(city:City)
where e.name in input
with city, count(r) as eventCount, sum(r.weight) as weightSum
return city, eventCount, weightSum
order by eventCount desc, weightSum desc
limit 1

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

neo4j MERGE가 중복 관계를 만드는 것을 방지하는 방법은 무엇입니까?

분류에서Dev

neo4j에서 관계 속성에 여러 값을 추가하는 방법은 무엇입니까?

분류에서Dev

여러 관계로 neo4j에서 트리 구조를 만드는 방법은 무엇입니까?

분류에서Dev

Cypher의 속성 중 하나를 사용하여 특정 관계를 검색하는 방법은 무엇입니까? (neo4j)

분류에서Dev

Neo4j 다중 관계 쿼리

분류에서Dev

neo4j에서 두 노드 간의 최단 관계를 찾는 방법은 무엇입니까?

분류에서Dev

REST API를 통해 Neo4j에서 고유 한 관계를 사용하는 방법은 무엇입니까?

분류에서Dev

Neo4j에서 관계 수를 집계하는 방법

분류에서Dev

Neo4J에서 관계를 구축하는 방법

분류에서Dev

Cypher를 사용하여 관계 가중치의 증가 순서로 Neo4j 그래프 탐색

분류에서Dev

가장 일반적인 관계에 대한 Neo4J 쿼리

분류에서Dev

neo4j의 가중치를 기반으로 관계 생성

분류에서Dev

neo4j cypher 쿼리를 통해 관계 속성에서 동일한 시퀀스 ID를 갖는 노드 시퀀스를 가져옵니다.

분류에서Dev

neo4j rest api를 사용하여 단일 요청을 통해 여러 노드와 해당 관계를 게시하는 방법은 무엇입니까?

분류에서Dev

Cypher : 더 많은 요소에 종속 된 다중 관계를 만드는 방법은 무엇입니까?

분류에서Dev

neo4j 쿼리 성능을 가져 오기 위해 RAM에 대한 모든 노드 및 관계를 캐시하는 방법

분류에서Dev

Neo4j OGM 유형 쿼리로 관련 개체를 필터링하는 방법은 무엇입니까?

분류에서Dev

Laravel에서 중간 관계를 쿼리하는 방법

분류에서Dev

API 전용 Rails에서 중첩 된 다 대다 관계를 저장하는 방법은 무엇입니까?

분류에서Dev

ember-data에서 중첩 된 관계를 효율적으로 지정하는 방법은 무엇입니까?

분류에서Dev

관련 서비스 중 하나를 파기 한 후 Juju에서 관계를 제거하는 방법은 무엇입니까?

분류에서Dev

관련 서비스 중 하나를 파괴 한 후 Juju에서 관계를 제거하는 방법은 무엇입니까?

분류에서Dev

Swift에서 관계를 가져 오기위한 NSPredicate를 빌드하는 방법은 무엇입니까?

분류에서Dev

두 개의 관리자 계정 중 하나를 삭제하는 방법은 무엇입니까?

분류에서Dev

neo4j에서 중복 관계 삭제-이것이 맞습니까?

분류에서Dev

중첩 된 HABTM 관계를 탐색하는 방법은 무엇입니까?

분류에서Dev

Django에서 중첩 된 다 대다 관계를 효율적으로 지우는 방법은 무엇입니까?

분류에서Dev

Neo4j 그래프에서 중복 된 양방향 관계 제거

분류에서Dev

매우 큰 그래프에서 Edge (관계) Neo4j를 추가하는 방법

Related 관련 기사

  1. 1

    neo4j MERGE가 중복 관계를 만드는 것을 방지하는 방법은 무엇입니까?

  2. 2

    neo4j에서 관계 속성에 여러 값을 추가하는 방법은 무엇입니까?

  3. 3

    여러 관계로 neo4j에서 트리 구조를 만드는 방법은 무엇입니까?

  4. 4

    Cypher의 속성 중 하나를 사용하여 특정 관계를 검색하는 방법은 무엇입니까? (neo4j)

  5. 5

    Neo4j 다중 관계 쿼리

  6. 6

    neo4j에서 두 노드 간의 최단 관계를 찾는 방법은 무엇입니까?

  7. 7

    REST API를 통해 Neo4j에서 고유 한 관계를 사용하는 방법은 무엇입니까?

  8. 8

    Neo4j에서 관계 수를 집계하는 방법

  9. 9

    Neo4J에서 관계를 구축하는 방법

  10. 10

    Cypher를 사용하여 관계 가중치의 증가 순서로 Neo4j 그래프 탐색

  11. 11

    가장 일반적인 관계에 대한 Neo4J 쿼리

  12. 12

    neo4j의 가중치를 기반으로 관계 생성

  13. 13

    neo4j cypher 쿼리를 통해 관계 속성에서 동일한 시퀀스 ID를 갖는 노드 시퀀스를 가져옵니다.

  14. 14

    neo4j rest api를 사용하여 단일 요청을 통해 여러 노드와 해당 관계를 게시하는 방법은 무엇입니까?

  15. 15

    Cypher : 더 많은 요소에 종속 된 다중 관계를 만드는 방법은 무엇입니까?

  16. 16

    neo4j 쿼리 성능을 가져 오기 위해 RAM에 대한 모든 노드 및 관계를 캐시하는 방법

  17. 17

    Neo4j OGM 유형 쿼리로 관련 개체를 필터링하는 방법은 무엇입니까?

  18. 18

    Laravel에서 중간 관계를 쿼리하는 방법

  19. 19

    API 전용 Rails에서 중첩 된 다 대다 관계를 저장하는 방법은 무엇입니까?

  20. 20

    ember-data에서 중첩 된 관계를 효율적으로 지정하는 방법은 무엇입니까?

  21. 21

    관련 서비스 중 하나를 파기 한 후 Juju에서 관계를 제거하는 방법은 무엇입니까?

  22. 22

    관련 서비스 중 하나를 파괴 한 후 Juju에서 관계를 제거하는 방법은 무엇입니까?

  23. 23

    Swift에서 관계를 가져 오기위한 NSPredicate를 빌드하는 방법은 무엇입니까?

  24. 24

    두 개의 관리자 계정 중 하나를 삭제하는 방법은 무엇입니까?

  25. 25

    neo4j에서 중복 관계 삭제-이것이 맞습니까?

  26. 26

    중첩 된 HABTM 관계를 탐색하는 방법은 무엇입니까?

  27. 27

    Django에서 중첩 된 다 대다 관계를 효율적으로 지우는 방법은 무엇입니까?

  28. 28

    Neo4j 그래프에서 중복 된 양방향 관계 제거

  29. 29

    매우 큰 그래프에서 Edge (관계) Neo4j를 추가하는 방법

뜨겁다태그

보관