Neo4j/Cypher-如何获得所有DINSTINT标签三元组?

Neo4j/Cypher-如何获得所有DINSTINT标签三元组?,neo4j,cypher,Neo4j,Cypher,随着标签的引入,neo4j获得了一个整洁的管理实体的机制。现在,让我们假设我们有一个包含许多不同实体的通用图,并想找出哪种实体(标签)相互关联。这是一个起点: 这将使我们对彼此相关的实体有一个概览: +--------------------------------------+ | head | type(r) | tail | +--------------------------------------+ | "Machines" | "CODED_BY"

随着标签的引入,neo4j获得了一个整洁的管理实体的机制。现在,让我们假设我们有一个包含许多不同实体的通用图,并想找出哪种实体(标签)相互关联。这是一个起点:

这将使我们对彼此相关的实体有一个概览:

+--------------------------------------+
| head       | type(r)    | tail       |
+--------------------------------------+
| "Machines" | "CODED_BY" | "Machines" |
| "Language" | "KNOWS"    | "Machines" |
| "Crew"     | "KNOWS"    | "Crew"     |
| "Crew"     | "KNOWS"    | "Language" |
| "Crew"     | "KNOWS"    | "Crew"     |
| "Crew"     | "LOVES"    | "Crew"     |
+--------------------------------------+
现在。是否有任何Cypher查询会为这些三元组返回不同的值


附加问题:我们能得到它们的计数/频率吗?

我刚刚使用了您的起始查询,添加了distinct和count。这就是你要找的吗?或者你想让我把标签从标签集合中分离出来(如果没有某种类型的展开功能,这是不容易的)


格拉茨。你让我觉得自己像鞋子一样笨。哈哈。正在获取所有标签。。。这是另一个故事。好吧,有一个拉式请求:现在,你只需获取所有不同标签组合的列表,并用你使用的任何语言处理它。。。
+--------------------------------------+
| head       | type(r)    | tail       |
+--------------------------------------+
| "Machines" | "CODED_BY" | "Machines" |
| "Language" | "KNOWS"    | "Machines" |
| "Crew"     | "KNOWS"    | "Crew"     |
| "Crew"     | "KNOWS"    | "Language" |
| "Crew"     | "KNOWS"    | "Crew"     |
| "Crew"     | "LOVES"    | "Crew"     |
+--------------------------------------+
match x-[r]->y 
return distinct head(labels(x)) as head, type(r), head(labels(y)) as tail

match x-[r]->y 
return head(labels(x)) as head, type(r), head(labels(y)) as tail, count(*)