首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tinkerpop3度中心性

Tinkerpop3度中心性
EN

Stack Overflow用户
提问于 2017-04-09 11:42:22
回答 2查看 226关注 0票数 1

我正在寻找最喜欢的节点,所以基本上是度中心性食谱。这个查询是可行的,但是我想返回完整的顶点(包括属性),而不仅仅是id。

(我正在使用Tinkerpop3.0.1-孵化中)

代码语言:javascript
复制
g.V()
  .where( inE("likes") )
  .group()
  .by()
  .by( inE("likes").count() )

结果

代码语言:javascript
复制
{
  "8240": [
    2
  ],
  "8280": [
    1
  ],
  "12376": [
    1
  ],
  "24704": [
    1
  ],
  "40976": [
    1
  ]
}
EN

回答 2

Stack Overflow用户

发布于 2017-04-09 20:39:37

您可能正在寻找使用传递给by()调制器的匿名遍历的order步骤:

代码语言:javascript
复制
g.V().order().by(inE('likes').count(), decr)

注意:这将需要迭代Titan v1.0.0中的所有顶点,并且此查询无法优化,它仅适用于OLTP中较小的图。

要获得最多的10个赞:

代码语言:javascript
复制
g.V().order().by(inE('likes').count(), decr).limit(10)

如果您想获得完整的属性,只需在查询上链接.valueMap().valueMap(true) (对于idlabel)。

另请参阅:

票数 3
EN

Stack Overflow用户

发布于 2017-04-11 18:30:46

由于GraphSON是基于JSON的,所以它不支持将复杂对象转换为键。JSON中的键必须是基于字符串的,并且不能是映射。为了解决这个JSON限制,GraphSON通过Java的toString()或通过其他方法将复杂对象转换为某些对象的键,比如图形元素(它返回元素标识符的字符串表示,解释为什么会收到这样的输出)。

如果您希望在使用GraphSON时返回元素的属性,则必须找到一种解决方法。在此特定情况下,您可以执行以下操作:

代码语言:javascript
复制
gremlin> graph = TinkerFactory.createModern()
==>tinkergraph[vertices:6 edges:6]
gremlin> g = graph.traversal()
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
gremlin> g.V().group().
......1>         by(id).
......2>         by(union(__(), outE('knows').count()).fold())
==>[1:[v[1],2],2:[0,v[2]],3:[v[3],0],4:[0,v[4]],5:[v[5],0],6:[0,v[6]]]

通过这种方式,您可以获得顶点标识符作为地图id,并且在值中您可以获得完整的顶点加上计数。TinkerPop正在努力改进这个问题,但我不希望很快就能解决。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43302782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档