Neo4j条件检查通过关系

时间:2014-06-23 09:17:17

标签: neo4j cypher

我有这样的新闻更新系统

user-[:post]->(upd1)
user-[:post]->(upd2)
user-[:next_post]->(upd2)-[:next_post]->(upd1)

如果我需要查询当前月份更新,我可以检索更新2路

  1. 在节点上创建时间属性并像这样查询
  2. MATCH user-[r:next_post*1..]->(upd)
    WHERE r.time > sometime
    
    1. 创建一个时间树并在每个upd和相应的时间节点之间建立关系并执行此操作
    2. MATCH user-[r:next_post*1..]->(upd)
      MATCH (upd)-[:in]-(exptime)
      

      有更好的方法吗? 是否有任何方法可以在条件为假时停止遍历[r:next_post*1..],我的意思是在检查其属性后停止接触关系而不过滤它们

1 个答案:

答案 0 :(得分:0)

Cypher还没有完全针对这个用例进行优化(尽管这会很快改变)。

我要么按照你的建议选择时间树,要么查看我在这里提供的Neo4j Server extension using the Java-API示例。