1

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

{
  "score": 5
}

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

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 边缘及其属性,以便考虑数字类型?

4

1 回答 1

1

我有理由确定您可以将 JSON 发布到边缘路由,但即使您不能,您也可以使用 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
}
于 2015-01-14T11:43:42.617 回答