我有这样的关系:
context-[EXPRESSED_AS]->root
假设我有两个上下文。第一个根源是base_forms,#34;温度","酷"和"热"。第二个根源是"酷"和"热"。我想查找所有上下文,按照匹配的数量排序[" cool"," temperature"]。
我试图使用这个Cypher查询,这个查询很接近,但不是很有效:
MATCH (n:Context)
OPTIONAL MATCH (n)-[:EXPRESSED_AS]->(r)
WHERE r.base_form IN ["cool","temperature"]
RETURN c, count(r) as c
ORDER BY c DESC
这会以预期的顺序返回上下文,但c
值是相同的。我希望c
等于集合中的匹配数,分别应为2和1。
感谢任何帮助!
答案 0 :(得分:0)
此查询与例如匹配所有上下文和optinally匹配包含两个特定根的上下文:
MATCH (n:Context)
OPTIONAL MATCH (n)<-[:EXPRESSED_AS]-(r)
WHERE r.base_form = "cool" AND r.base_form = "hot"
WITH count(r) AS c, n
ORDER BY c DESC
RETURN n, c
Neo4j控制台链接:http://console.neo4j.org/r/9sexaf