簡體   English   中英

如果在 scala gremline 中使用復合鍵創建頂點,如何使用 vertexId 進行查詢

[英]How to query using vertexId if vertex is made using composite key in scala gremline

我們正在使用這個庫來查詢 dse 圖。 https://github.com/mpollmeier/gremlin-scala

  1. 如果頂點主鍵只是像 UUID 這樣的單個鍵,我們可以使用 vertexId 查詢和獲取頂點。 ex. gV("veretxId=UUID,~label=vertexLabel") ex. gV("veretxId=UUID,~label=vertexLabel")

  2. 但是如果將頂點主鍵設為復合鍵
    前任。

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

現在頂點主鍵是這四個值的復合鍵。

  1. 現在,如果在 Datastax Studio 中查詢並使用此查詢獲取頂點

    gV("{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}"

好吧,我找到了解決方案。 Use java linked hash map in scala to generate vertexId and pass it to the scala gremlin query.

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()

頂點變量將使用鏈接的 hashmap 從 dse 圖中獲取頂點

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM