Gremlin : gremlin-driver를 사용하여 Java에서 json 응답 받기

프랑코 쿠에바스

다음 쿼리가 있습니다.

  g
    .V("user-11")
    .repeat(bothE().subgraph("subGraph").outV())
    .times(2)
    .cap("subGraph")
    .next()

을 사용하여 실행 gremlin-python하면 다음과 같은 응답이 나타납니다.

{'@type': 'tinker:graph',
 '@value': {'vertices': [v[device-3], v[device-1], v[user-11], v[card-1]],
  'edges': [e[68bad734-db2b-bffc-3e17-a0813d2670cc][user-11-uses_device->device-1],
   e[14bad735-2b70-860f-705f-4c0b769a7849][user-11-uses_device->device-3],
   e[f0bb3b6d-d161-ec60-5e6d-068272297f24][user-11-uses_card->card-1]]}}

쿼리로 얻은 하위 그래프의 Graphson 표현입니다.

나는 싶어 동일한 응답 사용하여 자바gremlin-driver하지만 난 어떻게 그림을 수 없었다.

나의 최선의 시도는 :

ObjectMapper mapper = GraphSONMapper.build().version(GraphSONVersion.V3_0).create().createMapper();
Object a = graphTraversalSource
                .V(nodeId)
                .repeat(bothE().subgraph("subGraph").outV())
                .times(2)
                .cap("subGraph")
                .next();
return mapper.writeValueAsString(a);

그러나 그로 인해 다음과 같은 오류가 발생했습니다.

io.netty.handler.codec.DecoderException: org.apache.tinkerpop.gremlin.driver.ser.SerializationException: org.apache.tinkerpop.shaded.kryo.KryoException: Encountered unregistered class ID: 65536

AWS Neptune을 사용하고 있지만을 통해 원하는 답변을받을 수 있다는 점을 감안할 때 차이가 있을지 의심됩니다 gremlin-python.

도움을 주시면 감사하겠습니다! 감사

켈빈 로렌스

댓글에서 언급했듯이

  1. Java를 사용하면 실제 TinkerGraph가 반환됩니다.
  2. GraphBinary 또는 GraphSONV3D0 직렬 변환기를 사용하는 것이 좋습니다.

Gyro 하나는 오래되었으며 다른 직렬 변환기 중 하나를 지정하지 않은 경우 오류가 발생할 가능성이 있습니다.

다른 serializer 중 하나를 사용하더라도 그래프를 JSON으로 deserialize하려면 특정 TinkerGraph serializer를 사용해야합니다 (예는이 답변의 끝 부분 참조). 그렇지 않으면 그냥 {}반환됩니다.

그러나 Java Gremlin 클라이언트의 경우 JSON을 전혀 생성 할 필요가 없습니다.

실제 TinkerGraph가 돌아왔다면 메모리 내 하위 그래프에 대해 실제 Gremlin 쿼리를 실행할 수 있습니다. 새 순회 소스를 생성하기 만하면됩니다. 원하는 경우 graph.io클래스를 사용하여 그래프를 파일에 쓸 수도 있습니다 . TinkerGraph에는 속성과 가장자리 및 정점이 포함됩니다.

다음과 같은 명령문을 사용하여 TinkerGraph 객체에 직접 액세스 할 수도 있습니다.

a.verticesa.edges

구체적인 예를 들어, 다음과 같은 형식의 쿼리가있는 경우

TinkerGraph tg = (TinkerGraph)g.V().bothE().subgraph("sg").cap("sg").next();

그러면 할 수 있습니다

GraphTraversalSource g2 = tg.traversal();

Long cv = g2.V().count().next();
Long ce = g2.E().count().next();

또는 다음 형식의 명령문을 사용하여 TinkerGraph 데이터 구조에 직접 액세스 할 수 있습니다.

Vertex v = tg.vertices[<some-id>]

또는

List properties = tg.vertices[<some-id>].properties()

이것은 실제로 하위 그래프로 작업 할 때 Java 클라이언트에서 더 많은 기능을 사용할 수 있음을 의미합니다.

여전히 하위 그래프의 JSON 버전이 필요하다고 생각되는 경우 IO 참조는 유용한 책갈피입니다. https://tinkerpop.apache.org/docs/3.4.9/dev/io/#_io_reference

편집 됨 :-문서를 많이 읽는 것을 절약하기 위해이 코드는 TinkerGraph를 JSON으로 인쇄합니다.

mapper = GraphSONMapper.build().
            addRegistry(TinkerIoRegistryV3d0.instance()).
            version(GraphSONVersion.V3_0).create().createMapper();

mapper.writeValueAsString(tg) 

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

javascript / jquery를 사용하여 API에서 Json 응답 받기

분류에서Dev

jQuery를 사용하여 PHP에서 JSON 응답 받기

분류에서Dev

jQuery API를 사용하여 JSON 응답 받기

분류에서Dev

여러 인덱스를 사용하여 Gremlin에서 쿼리

분류에서Dev

Tomcat 또는 GlassFish 서버를 사용하여 Java Jersey 앱에서 JSON 응답을받을 수 없습니다.

분류에서Dev

AWS 사전 서명 된 URL을 사용하여 JSON 응답 받기

분류에서Dev

바닐라 자바 스크립트를 사용하여 JSON API 응답 받기

분류에서Dev

Javascript를 사용하여 JSON 응답에서 HTML 태그 값 가져 오기

분류에서Dev

C # HttpClient를 사용하여 JSON 응답에서 특정 개체 가져 오기

분류에서Dev

루프백에서 사용자 지정 JSON 응답 받기

분류에서Dev

Gremlin을 사용하여 Tinkergraph 하위 그래프를 파일로 내보내기

분류에서Dev

ProximityKit KitUrl android에서 JSON 응답 받기

분류에서Dev

PHP에서 JSON 응답 받기

분류에서Dev

API에서 JSON으로 응답 받기

분류에서Dev

PHP에서 json 응답 받기

분류에서Dev

Groovy를 사용하여 Json 응답에서 null 값 지정

분류에서Dev

iOS JSON 매개 변수를 사용하여 AFNetworking HTTP POST 메서드에서 JSON 응답 가져 오기

분류에서Dev

HTML에서 Jquery를 사용하여 Ajax 호출하고 다른 Html 페이지에 대한 응답 받기

분류에서Dev

Django Restframework를 사용하여 JSON 및 XML 응답 가져 오기

분류에서Dev

jQuery를 사용하여 Google Geocoding API JSON 응답에서 유형에 따라 값 가져 오기

분류에서Dev

Alamofire를 사용하여 null 응답 받기

분류에서Dev

Win Message를 사용하여 Cstring을 보내고 응답 받기

분류에서Dev

PHPMailer를 사용하여 ionic에서 이메일을 보내는 동안 오류 응답 받기

분류에서Dev

Python3 및 jinja2를 사용하여 중첩 된 Json 응답에서 정보 가져 오기

분류에서Dev

BART의 API를 사용하여 RestSharp C #을 사용하여 응답 받기

분류에서Dev

Gremlin을 사용하여 TitanDB에서 정렬

분류에서Dev

gremlin API를 사용하여 Azure Cosmos DB에서 Left 조인을 수행하는 방법

분류에서Dev

Java 애플리케이션에서 gremlin을 사용하여 bitsy에 액세스

분류에서Dev

RETROFIT를 사용하여이 JSON 응답을 구문 분석하고 Recylcer보기 Android에 채우는 방법

Related 관련 기사

  1. 1

    javascript / jquery를 사용하여 API에서 Json 응답 받기

  2. 2

    jQuery를 사용하여 PHP에서 JSON 응답 받기

  3. 3

    jQuery API를 사용하여 JSON 응답 받기

  4. 4

    여러 인덱스를 사용하여 Gremlin에서 쿼리

  5. 5

    Tomcat 또는 GlassFish 서버를 사용하여 Java Jersey 앱에서 JSON 응답을받을 수 없습니다.

  6. 6

    AWS 사전 서명 된 URL을 사용하여 JSON 응답 받기

  7. 7

    바닐라 자바 스크립트를 사용하여 JSON API 응답 받기

  8. 8

    Javascript를 사용하여 JSON 응답에서 HTML 태그 값 가져 오기

  9. 9

    C # HttpClient를 사용하여 JSON 응답에서 특정 개체 가져 오기

  10. 10

    루프백에서 사용자 지정 JSON 응답 받기

  11. 11

    Gremlin을 사용하여 Tinkergraph 하위 그래프를 파일로 내보내기

  12. 12

    ProximityKit KitUrl android에서 JSON 응답 받기

  13. 13

    PHP에서 JSON 응답 받기

  14. 14

    API에서 JSON으로 응답 받기

  15. 15

    PHP에서 json 응답 받기

  16. 16

    Groovy를 사용하여 Json 응답에서 null 값 지정

  17. 17

    iOS JSON 매개 변수를 사용하여 AFNetworking HTTP POST 메서드에서 JSON 응답 가져 오기

  18. 18

    HTML에서 Jquery를 사용하여 Ajax 호출하고 다른 Html 페이지에 대한 응답 받기

  19. 19

    Django Restframework를 사용하여 JSON 및 XML 응답 가져 오기

  20. 20

    jQuery를 사용하여 Google Geocoding API JSON 응답에서 유형에 따라 값 가져 오기

  21. 21

    Alamofire를 사용하여 null 응답 받기

  22. 22

    Win Message를 사용하여 Cstring을 보내고 응답 받기

  23. 23

    PHPMailer를 사용하여 ionic에서 이메일을 보내는 동안 오류 응답 받기

  24. 24

    Python3 및 jinja2를 사용하여 중첩 된 Json 응답에서 정보 가져 오기

  25. 25

    BART의 API를 사용하여 RestSharp C #을 사용하여 응답 받기

  26. 26

    Gremlin을 사용하여 TitanDB에서 정렬

  27. 27

    gremlin API를 사용하여 Azure Cosmos DB에서 Left 조인을 수행하는 방법

  28. 28

    Java 애플리케이션에서 gremlin을 사용하여 bitsy에 액세스

  29. 29

    RETROFIT를 사용하여이 JSON 응답을 구문 분석하고 Recylcer보기 Android에 채우는 방법

뜨겁다태그

보관