2

我们正在使用这个库来查询 dse 图。 https://github.com/mpollmeier/gremlin-scala

  1. 如果顶点主键只是像 UUID 这样的单个键,我们可以使用 vertexId 查询和获取顶点。为了ex. g.V("veretxId=UUID,~label=vertexLabel")

  2. 但是如果顶点主键是
    ex 的复合键。

        addressTD : UUId
        postCode: Int
        sName: String
        lName: String.
    

现在顶点主键是这四个值的复合键。

  1. 现在,如果在 Datastax Studio 中查询并使用此查询获取顶点

    g.V("{sName=\"TREVALLYN\",lName=\"TREVALLYN\",~label=tasLabel,postCode=7250,addressID=ad71d33c-0aaa-4014-a381-c189c30d45c5}")
    

它将在 datastax studio 中返回顶点。

  1. 在使用https://github.com/mpollmeier/gremlin-scala这个库时。它似乎不起作用。我正在以这样的规定格式发送 vertexId

    "{sName=\"TREVALLYN\",lName=\"TREVALLYN\",~label=tasLabel,postCode=7250,addressID=ad71d33c-0aaa-4014-a381-c189c30d45c5}"
    
4

1 回答 1

2

好吧,我找到了解决方案。在 scala 中使用 java linked hash map 生成 vertexId 并将其传递给 scala gremlin 查询。

val javaLinkedHashMapVertexId = new java.util.LinkedHashMap[String, Any]()


//Putting values in hashmap
val vLabel =
  javaLinkedHashMapVertexId.put("~label", "vertexLabelName")
val pKeyLocaName =
  javaLinkedHashMapVertexId.put("localityName", "lName")
val pKeyPostCode =
  javaLinkedHashMapVertexId.put("postCode", postCode)
val pKeyStreetName =
  javaLinkedHashMapVertexId.put("streetName", "sname")
val pKeyAddId =
  javaLinkedHashMapVertexId.put("addressID","addressID")

val vertex = graph 
  .V(javaLinkedHashMapVertexId)
  .head()

顶点变量将使用链接哈希图从 dse 图中获取顶点

于 2019-11-20T11:03:37.900 回答