out() 대 outE() – JanusGraph 및 Gremlin
out()
, outE()
, in()
및 inE()
메서드에 대해 혼란스러울 것입니다. 이러한 기능의 예를 보면 차이점을 쉽게 이해할 수 없습니다. 아니면 나만 그런가요?어쨌든 혼란스러워서 차이가 있고 없다는 것을 이해하는 데 시간이 좀 걸렸습니다. 설명하겠습니다.
샘플 그래프
차이점을 살펴보기 전에 샘플 그래프를 살펴보겠습니다.
위의 그래프에서 볼 수 있듯이 4개의 정점과 3개의 모서리가 있습니다. 속성 "name": "sunny"가 있는 가운데 정점은 순회를 시작할 정점입니다. 다른 세 정점은 전자 상거래 웹사이트에서 구입한 항목입니다. 스마트폰, 노트북, 모니터입니다. 관계는 구매 레이블이 지정된 가장자리로 표시됩니다.
가장자리에는 count라는 또 다른 속성이 있으며 알 수 있듯이 이러한 항목을 구입한 횟수를 나타냅니다. 그래서 스마트폰 3대, 노트북 2대, 모니터 1대를 샀다. 이것이 우리가 작업할 데이터입니다.
이제 먼저 다음 쿼리를 사용하여 시작 정점에 대한 참조를 얻습니다.
sunny = g.V().has('name', 'sunny').next()
이제 이러한 기능의 차이점을 이해하는 데 필요한 모든 데이터가 있습니다.
아웃() 및. 밖으로()
우리는 이미 outE()
함수를 사용하여 현재 정점을 벗어나는 에지를 횡단한다는 것을 알고 있습니다. 하나 이상의 가장자리 레이블을 함수에 전달합니다. 전자 상거래 예에서 구입한 모든 항목을 가져오려면 다음 쿼리를 실행합니다.
g.V(sunny).outE('bought').in()
이렇게 하면 현재 정점과 '구매한' 관계가 있는 모든 정점을 얻을 수 있습니다. 그러나 동일한 사용 사례에 대해 다음 쿼리도 보았을 것입니다.
g.V(sunny).out('bought')
따라서 동일한 순회를 수행하고 동일한 결과를 반환합니다. outE().in()
조합을 사용할 때 간단히 out()
로 바꿀 수 있다는 것을 알게 되었습니다. 긴 형식outE().in()
의 속기 또는 별칭입니다. 그런데 왜 outE()
를 사용하겠습니까?
에지의 다른 속성을 기반으로 순회를 필터링하거나 제한한다고 가정합니다. 예를 들어 샘플 그래프에서 두 번 이상 구매한 항목만 가져오고 싶습니다. 우리는 구입한 각 가장자리에 대해 count 속성을 가지고 있습니다. 이를 사용하여 정점을 필터링할 수 있습니다. 이에 대한 쿼리는 다음과 같습니다.
g.V(sunny).outE('bought').has('count', gt(1)).inV()
보시다시피 특정 속성을 가진 가장자리를 필터링하기 위해 가장자리에 has()
함수를 사용할 수 있습니다. 이 필터링 기능은 out()
함수를 사용할 때 사용할 수 없습니다. out()
함수의 결과가 정점이기 때문입니다. 따라서 해당 결과에 대해 has()
함수를 호출하면 가장자리가 아닌 정점에서 필터링하게 됩니다. 일을 복잡하게 만들지 않기를 바랍니다.
in() 대 inE()
in()
및 inE()
함수도 마찬가지입니다. 추가 속성을 기반으로 가장자리를 필터링하려면 inE()
대신 in()
함수를 사용합니다.
더있다…
outE()
또는 inE()
함수를 사용하면 as()
함수, count()
함수 등을 사용하여 에일리어싱하는 것과 같이 가장자리에서 사용할 수 있는 더 많은 함수에 액세스할 수 있습니다. 문서를 볼 수 있습니다. 가장자리에서 사용할 수 있는 모든 기능 목록을 보려면
나는 이것이 당신이 이미 혼란스러워하지 않았기를 바랍니다. 아직 JanusGraph 및 Gremlin을 시작하는 단계에 있을 때 저와 같은 질문을 가진 최소한 몇 사람에게는 이것이 문제를 해결해 줄 것이라고 생각했습니다. 이것이 도움이 되었는지, 그렇지 않았는지 알려주세요.
그리고 여기 또는 내 personal 또는 Medium 블로그에서 본 내용이 마음에 들고 앞으로 이러한 유용한 기술 게시물을 더 보고 싶다면 Patreon 및 Github에서 저를 지원해 주십시오.
Reference
이 문제에 관하여(out() 대 outE() – JanusGraph 및 Gremlin), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/contactsunny/out-vs-oute-janusgraph-and-gremlin-m5n
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
sunny = g.V().has('name', 'sunny').next()
우리는 이미
outE()
함수를 사용하여 현재 정점을 벗어나는 에지를 횡단한다는 것을 알고 있습니다. 하나 이상의 가장자리 레이블을 함수에 전달합니다. 전자 상거래 예에서 구입한 모든 항목을 가져오려면 다음 쿼리를 실행합니다.g.V(sunny).outE('bought').in()
이렇게 하면 현재 정점과 '구매한' 관계가 있는 모든 정점을 얻을 수 있습니다. 그러나 동일한 사용 사례에 대해 다음 쿼리도 보았을 것입니다.
g.V(sunny).out('bought')
따라서 동일한 순회를 수행하고 동일한 결과를 반환합니다.
outE().in()
조합을 사용할 때 간단히 out()
로 바꿀 수 있다는 것을 알게 되었습니다. 긴 형식outE().in()
의 속기 또는 별칭입니다. 그런데 왜 outE()
를 사용하겠습니까?에지의 다른 속성을 기반으로 순회를 필터링하거나 제한한다고 가정합니다. 예를 들어 샘플 그래프에서 두 번 이상 구매한 항목만 가져오고 싶습니다. 우리는 구입한 각 가장자리에 대해 count 속성을 가지고 있습니다. 이를 사용하여 정점을 필터링할 수 있습니다. 이에 대한 쿼리는 다음과 같습니다.
g.V(sunny).outE('bought').has('count', gt(1)).inV()
보시다시피 특정 속성을 가진 가장자리를 필터링하기 위해 가장자리에
has()
함수를 사용할 수 있습니다. 이 필터링 기능은 out()
함수를 사용할 때 사용할 수 없습니다. out()
함수의 결과가 정점이기 때문입니다. 따라서 해당 결과에 대해 has()
함수를 호출하면 가장자리가 아닌 정점에서 필터링하게 됩니다. 일을 복잡하게 만들지 않기를 바랍니다.in() 대 inE()
in()
및 inE()
함수도 마찬가지입니다. 추가 속성을 기반으로 가장자리를 필터링하려면 inE()
대신 in()
함수를 사용합니다.
더있다…
outE()
또는 inE()
함수를 사용하면 as()
함수, count()
함수 등을 사용하여 에일리어싱하는 것과 같이 가장자리에서 사용할 수 있는 더 많은 함수에 액세스할 수 있습니다. 문서를 볼 수 있습니다. 가장자리에서 사용할 수 있는 모든 기능 목록을 보려면
나는 이것이 당신이 이미 혼란스러워하지 않았기를 바랍니다. 아직 JanusGraph 및 Gremlin을 시작하는 단계에 있을 때 저와 같은 질문을 가진 최소한 몇 사람에게는 이것이 문제를 해결해 줄 것이라고 생각했습니다. 이것이 도움이 되었는지, 그렇지 않았는지 알려주세요.
그리고 여기 또는 내 personal 또는 Medium 블로그에서 본 내용이 마음에 들고 앞으로 이러한 유용한 기술 게시물을 더 보고 싶다면 Patreon 및 Github에서 저를 지원해 주십시오.
Reference
이 문제에 관하여(out() 대 outE() – JanusGraph 및 Gremlin), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/contactsunny/out-vs-oute-janusgraph-and-gremlin-m5n
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
outE()
또는 inE()
함수를 사용하면 as()
함수, count()
함수 등을 사용하여 에일리어싱하는 것과 같이 가장자리에서 사용할 수 있는 더 많은 함수에 액세스할 수 있습니다. 문서를 볼 수 있습니다. 가장자리에서 사용할 수 있는 모든 기능 목록을 보려면나는 이것이 당신이 이미 혼란스러워하지 않았기를 바랍니다. 아직 JanusGraph 및 Gremlin을 시작하는 단계에 있을 때 저와 같은 질문을 가진 최소한 몇 사람에게는 이것이 문제를 해결해 줄 것이라고 생각했습니다. 이것이 도움이 되었는지, 그렇지 않았는지 알려주세요.
그리고 여기 또는 내 personal 또는 Medium 블로그에서 본 내용이 마음에 들고 앞으로 이러한 유용한 기술 게시물을 더 보고 싶다면 Patreon 및 Github에서 저를 지원해 주십시오.
Reference
이 문제에 관하여(out() 대 outE() – JanusGraph 및 Gremlin), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/contactsunny/out-vs-oute-janusgraph-and-gremlin-m5n텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)