如何用数字属性POST / PUT边缘?

时间:2015-01-14 02:16:11

标签: titan rexster

我正在使用Rexster将数据加载到TitanDB中。发布/放置顶点时,我可以在请求的正文中提供JSON属性。如果属性的值是数字,则它将相应地存储为数字,并且可以如此检索。例如,以下正文将在帖子消息中创建一个类型为number的属性“score”:

{
  "score": 5
}

但是,当POSTing / PUTing边缘时,似乎属性只能作为查询参数提供,例如:

POST .../graphs/graph/edges?_outV=256&_label=review&_inV=512&score=5

在这种情况下,遗憾的是,5始终被视为字符串:“5”。因此,包括数字运算/比较的查询不起作用。例如,以下查询仍将返回发布的边缘(尽管发布的得分为5):

v(256).outE('review').filter{it.getProperty('score')>9}

有没有办法POST / PUT边缘及其属性,以便考虑数字类型?

1 个答案:

答案 0 :(得分:1)

我有理由相信你可以将JSON POST到边缘路径,但即使你不能,也可以使用Rexster的显式类型系统正确发布你的整数:

$ curl -X POST "http://localhost:8182/graphs/tinkergraph/edges?_outV=1&_inV=2&_label=knows&score=(i,5)"

{
  "version":"2.7.0-SNAPSHOT",
  "results": {
    "score":5,"_id":"0","_type":"edge","_outV":"1","_inV":"2","_label":"knows"
  },
  "queryTime":31.79554
}