1

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

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

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

当我搜索 Sport 的提要时,还想拉出所有与 Football 和 Belgium 相关的内容(他的相关标签)。

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

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

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

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

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

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

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

谁能给我一个参考?

谢谢!

4

1 回答 1

0

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

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]

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

于 2013-10-09T12:57:00.813 回答