首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用于检索按关系计数排序的节点的Cypher查询

用于检索按关系计数排序的节点的Cypher查询
EN

Stack Overflow用户
提问于 2018-06-06 16:14:47
回答 1查看 628关注 0票数 0

在使用neo4j时,我在一个用例中遇到了一个问题,在这个用例中,我需要使用cypher order by number从输入节点集获取数据。

我是neo4j的新手,如果这个问题太幼稚,我很遗憾。

演示图:

我试图做的是,对于输入字符串,例如"java developer engineer“,返回所有节点,连接到节点java、developer和engineer,但将最高优先级给予连接到这三个节点的节点,然后将低优先级给予连接到2的节点,将最低优先级给予仅与其中1个节点连接的节点。

我写了一个基本的查询:

代码语言:javascript
复制
match(n:Token{name:"java"})-[res]->(y)
match(n1:Token{name:"developer"})-[res1]->(y1)
match(x:Token{name:"engineer"})-[res2]->(y2)
return n,n1,x,res,res1,res2,y,y1,y2

我面临的问题是与所有3个输入节点连接的优先节点,如果存在任何不正确的输入令牌(例如java、开发人员、工程师和tesla,其中tesla不是令牌),则处理情况。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-06-07 04:07:47

下面的查询假定向它传递了一个包含输入字符串的input parameter,并为每个不同的term返回

从相关的Token节点找到术语本身的路径集合,

  • the term

的路径数

结果也会根据找到的路径数以降序返回。

代码语言:javascript
复制
UNWIND SPLIT($input, ' ') AS name
MATCH p=(n:Token {name: name})-[:RELATED_TO]->(term)
WITH term, COLLECT(p) AS paths
ORDER BY SIZE(paths) DESC
RETURN term, paths, SIZE(paths) AS count
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50715406

复制
相关文章

相似问题

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