【问题标题】:Aggregation with Gremlin in Neo4j to get related News在 Neo4j 中与 Gremlin 聚合以获得相关新闻
【发布时间】:2013-10-09 12:03:35
【问题描述】:

我正在学习在 Neo4j 中使用 Gremlin。

我有以下标签结构:体育 ->(相关)-> 足球 ->(相关)-> 比利时。

在每个标签上,我都有关联的提要。在每个提要中,我都有几个项目提要(新闻)。

当我搜索体育的提要时,也想拉出所有与足球和比利时相关的(他的相关标签)。

使用 Cypher,我得到了这个查询的结果:

START tag=node(106949) MATCH tag-[:FILHA*1..10]->fof WITH fof MATCH fof-[:USA]-> feeds RETURN feeds LIMIT 10;

使用 Gremlin,我得到了与 Sport 标签相关的所有标签:

x=[];g.v(106949).as("tagsFilha").out("FILHA").aggregate(x).loop("tagsFilha"){it.loops

使用 Gremlin 可以捕获标签 ( Sport ) 的新闻提要,如下所示:

g.v(startNode).out("USA").out("CONTEM").sort{it.qtde_visualizacoes}._()[0.. 10]

但是上面的查询没有返回与相关标签相关的新闻。 ex : Searching for Sport 也可以得到 Tag Belgium 的消息(他的相关 Tag)。

谁能给我一个参考?

谢谢!

【问题讨论】:

    标签: neo4j cypher gremlin


    【解决方案1】:

    我不确定我是否完全遵循您的架构,但如果您已经拥有 x 中的所有 Sport 标签:

    x=[];g.v(106949).as("tagsFilha").out("FILHA").aggregate(x).loop("tagsFilha"){it.loops < 10}.iterate();x
    

    而且您知道这会为您提供供稿:

    g.v(startNode).out("USA").out("CONTEM").sort{it.qtde_visualizacoes}._()[0..10]
    

    那么为什么不从x 开始一个管道以同样的方式获取提要:

    x._().out("CONTEM").sort{it.qtde_visualizacoes}._()[0..10]
    

    因此,换句话说,对于层次结构中的所有标签,只需遍历提要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-21
      • 2022-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多