我如何按Gremlin Server分组(Titan 1.0)基于顶点ID的响应?

时间:2016-06-23 15:17:45

标签: graph titan gremlin gremlin-server

我正在尝试以下查询:

  

gV(835776).out('关注')in(' WallPost')。order()。by(' PostedTimeLong',decr)。范围(0,2)

我得到了以下回复:

{

"requestId": "524462bc-5e46-40bf-aafd-64d00351dc87",
"status": {
    "message": "",
    "code": 200,
    "attributes": { }
},
"result": {
    "data": [
        {
            "id": 1745112,
            "label": "Post",
            "type": "vertex",
            "properties": {
                "PostImage": [
                    {
                        "id": "sd97-11ejc-2wat",
                        "value": ""
                    }
                ],
                "PostedByUser": [
                    {
                        "id": "sc2j-11ejc-2txh",
                        "value": "orbitpage@gmail.com"
                    }
                ],
                "PostedTime": [
                    {
                        "id": "scgr-11ejc-2upx",
                        "value": "2016-06-19T09:17:27.6791521Z"
                    }
                ],
                "PostMessage": [
                    {
                        "id": "sbob-11ejc-2t51",
                        "value": "Hello @[tag:Urnotice_Profile|835776|1]   , @[tag:Abhinav_Srivastava|872488|1]  and @[tag:Rituraj_Rathore|839840|1]"
                    }
                ],
                "PostedTimeLong": [
                    {
                        "id": "scuz-11ejc-2vid",
                        "value": 636019246476802029
                    }
                ]
            }
        },
        {
            "id": 1745112,
            "label": "Post",
            "type": "vertex",
            "properties": {
                "PostImage": [
                    {
                        "id": "sd97-11ejc-2wat",
                        "value": ""
                    }
                ],
                "PostedByUser": [
                    {
                        "id": "sc2j-11ejc-2txh",
                        "value": "orbitpage@gmail.com"
                    }
                ],
                "PostedTime": [
                    {
                        "id": "scgr-11ejc-2upx",
                        "value": "2016-06-19T09:17:27.6791521Z"
                    }
                ],
                "PostMessage": [
                    {
                        "id": "sbob-11ejc-2t51",
                        "value": "Hello @[tag:Urnotice_Profile|835776|1]   , @[tag:Abhinav_Srivastava|872488|1]  and @[tag:Rituraj_Rathore|839840|1]"
                    }
                ],
                "PostedTimeLong": [
                    {
                        "id": "scuz-11ejc-2vid",
                        "value": 636019246476802029
                    }
                ]
            }
        }
    ],
    "meta": { }
}

}

由于同一篇文章发布在两个不同的ID上,因此会有两次回复。我希望根据顶点id进行分组(两者都具有相同的顶点id。或者我只是想从它们中获取一个对象,因为两者都是相同的。

我已尝试过以下查询,但对我没有任何作用:

  

GV(835776)的.out('按照&#39)。在(' WallPost&#39)。GROUPBY {it.id} .order()由('&PostedTimeLong #39;,decr).range(0,3)

     

GV(835776)的.out('按照&#39)。在(' WallPost&#39)。组()由(ID).order()由(&#39。 ; PostedTimeLong',decr).range(0,3)

如何根据顶点id对结果进行分组。

1 个答案:

答案 0 :(得分:1)

查询

g.V(835776).out('Follow').in('WallPost').group().by(id).order().by('PostedTimeLong', decr).range(0,3)

应该有效,但order().by()range()无效。但是,我不认为你真的想要group(),你更可能想要dedup()

g.V(835776).out('Follow').in('WallPost').dedup().order().by('PostedTimeLong', decr).limit(3)