首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询graphDB(密码)

查询graphDB(密码)
EN

Stack Overflow用户
提问于 2017-11-03 19:07:44
回答 1查看 112关注 0票数 1

我试图解释节点和它们之间的关系:

  1. (CR)-[:HAS]->(SR)
  2. (CR)-[:TAGGED_TO]->(KEYWORDS)
  3. (SR)-[:TAGGED_TO]->(KEYWORDS)

因此,我有3种类型的节点(CRSRKEYWORDS)和2种关系(HASTAGGED_TO)。

一个CR有多个SR,一个CR可以标记到多个KEYWORDS,还有一个SR可以标记到多个KEYWORDS,一个或多个KEYWORDSCRSR中是常见的。

假设我们有4个给定的关键字,现在我们需要从我的查询中找到4列:

  • 第一栏:与CR匹配的KEYWORDS
  • 第二栏:附在第一栏中的SR号,附在CR上。
  • 第三栏:与第一栏中的KEYWORDS匹配的CR数。
  • 第4列:与第2列中的SR匹配的唯一关键字的数量。

我已经编写了一个查询,它能够实现前3列,但没有得到4列。

代码语言:javascript
复制
WITH ["level","transact","balance","line"] AS coll
WITH coll, range(0, size(coll)-1) AS is
UNWIND is AS i
WITH coll[i] as col, i
match (s:SR)-[t:TAGGED_TO]->(tg:Tag) where tg.name=~('.*'+col+'.*') 
with  s, count(t) as no_of_keywords
matched_in_SR  match (s:SR)<-[h:HAS]-(c:CR) 
return c.CR_Number,count(h) as NO_of_SR_under_CR_which_contain_keywords, 
no_of_keywords_matched_in_SR

输出控制台图像

在我的输出控制台中有3列

  1. CR_number
  2. no_of_keywords_matched_to_that_CR
  3. Number_of_SR_attached_to_that_CR。

在第4列中,我希望从给定关键字中匹配的关键字数与第3列中的SRs匹配。

例如,CR 1-11071804441有4个给定关键字中的2个关键字匹配,893个SR被附加到它上。

我想要第四列,它将包含计数的关键字,从给定的4个关键字,是匹配的893 SR,在第3列。

例如,假设在893个SR中,第一个SR包含4个关键字中的2个关键字,第二个SR包含相同的2个关键字(因此我们不计算这2个关键字),并且在给定的4个关键字中添加一个新的关键字,所以我的总计数将变成3,就像我们必须在第1列中对附加到CR 1-11071804441的所有893 SR的关键字进行计数一样。就像与SR匹配的关键字总数的最大值为4一样,因为在给定keywords.Like的情况下,我们总共有4个关键字,必须填充所有CR_number的第4列。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-03 22:31:33

试试这个:

代码语言:javascript
复制
... WITH col               
MATCH (s:SR)-[:HAS]-(c:CR)-[:TAGGED_TO]-(tg:Tag) 
WHERE tg.name=~('.*'+col+'.*') 
WITH c, tg, s 
OPTIONAL MATCH (s)-[:TAGGED_TO]-(tg1:Tag)
WHERE tg1.name=~('.*'+col+'.*')
RETURN c.CR_Number as CR_number, 
 count(distinct tg) as NO_of_keywords_matched_in_CR, 
 count(distinct s) as NO_of_SR_under_CR_which_contain_keywords, 
 count(distinct tg1) as NO_of_keywords_matched_in_SR

在第一个MATCH中,查询匹配包含所需关键字的所有CRs,再加上附加到这些CRs的所有SR

在第二个OPTIONAL MATCH中,查询匹配所有附加到以前获取的SRs上的Tag。第二个匹配的原因是OPTIONAL可能没有附加任何TagSRs (正常的匹配会过滤您的SR,只返回至少附加了标记的OPTIONAL)。

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

https://stackoverflow.com/questions/47102896

复制
相关文章

相似问题

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