Neo4j 获取带有评论和喜欢的朋友帖子

时间:2021-04-17 11:02:22

标签: neo4j

我是 neo4j 的新手,并尝试进行查询以获取以下内容:

  • 用户未见过且非私密的朋友的所有故事
  • 朋友对该故事的评论
  • 喜欢这个故事的朋友

我的查询如下所示:

Match (P:User {id: 5})
Match (a:Story)-[BEL_TO]->(P2: User)-[:FRI]-(P)
Where not (P)-[:SEEN]->(a) AND NOT a.priv = "bf"
optional Match (a)<-[:LIKE]-(P3: User)-[:FRI]-(P)
with a, COLLECT({id: P3.id, name: P3.name}) as flikes
optional Match (a)<-[:COM_ON]-(com:Com)-[:BEL_TO]->(P4: User)-[:FRI]-(P) 
RETURN a.id as id, flikes, COLLECT({id: P4.id, name: P4.name, comment: com}) as fcomments
LIMIT 35

当我运行这个查询时,我得到了我想要的结果,但我在以下场景中测试了这个查询:

  • 1000 个“新”帖子(没有看到任何关系)
  • 每个帖子有 50 个赞和评论
  • 用户有 1000 个朋友

查询大约需要 1500 毫秒

有没有办法让这个查询更高效/更快?

我想到的事情:

  • 添加索引(但不知道在哪里)
  • 使用“join on a”(但在 neo4j 中出错)

提前致谢。

0 个答案:

没有答案