1
cypher 및 neo4j 2.0 사용.노드 간 관계를 병렬로 생성
두 개의 노드 ID (동일한 길이)와 가중치 세트가 주어지면 해당 노드 간의 관계를 만들고 그 가중치를 특성으로 설정하려고합니다. 예를 들어 나는 세 가지 목록 다음과 같은 경우 : 나는 다음과 같은 표현을
101 - knows {w : .1} - 102
201 - knows {w : .6} - 202
301 - knows {w : .25} - 302
을 만들려면하지만 것
node list 1: (101, 201, 301)
node list 2: (102, 202, 302)
weights: (0.1, 0.6, 0.25)
을하지, 예를 들어, 101 - knows - 302
내 매개 변수를 만들고 개별 쿼리를 만듭니다. 배치를 실행하여 매개 변수로 내 위치를 전달하고 cypher
에 순서대로 노드 & 속성을 일치하도록 요청합니까?
나는 일하는 것이 다음과 같은 방식으로 매개 변수를 사용하여 잠시 생각하지만, 대신 관계의 모든 순열을 생성 (예상대로) 및 각 속성으로 가중치의 전체 목록으로 지정 관계.
{
"query":
"START a1=node({starts}), a2=node({ends})
CREATE UNIQUE a1-[r:knows {w : {weights}}]-a2
RETURN type(r), r.w, a1.name, a2.name",
"params": {
"starts" : [101, 201, 301],
"ends" : [102, 202, 302],
"weights" : [0.1, 0.6, 0.25]
}
}
마이클의 답장을 보내 주셔서 감사합니다. 내 목록은 50K만큼 큰 1K만큼 작을 수 있습니다. 올바르게 이해한다면 하나의 쿼리에서 반복하는 것이 아니라 내 쿼리를 반복하는 것이 가장 효율적입니까? –
예, 특히 쿼리 캐시를 사용하는 매개 변수를 사용하면 일괄 처리 (예 : 일괄 처리 -rest-api, 2.0의 새 트랜잭션 끝점 또는 하나의 TX에 포함 된 java 포함)를 통해 많은 쿼리를 한 번에 보낼 수 있습니다. –
또한 접근 방식을 통해 목록의 교차 제품을 만든 다음 다시 필터링해야합니다. –