使用Graph Database实现Q / A场景

时间:2014-02-07 12:12:09

标签: neo4j graph-databases titan

我想知道我是否正确实施了Graph DB scanerio。我正在尝试使用Titan Graph Databaseneo4j

user-1已向this is question1

提出问题user-2

user-2回答了这个问题

user-3也回答了这个问题

以下是我如何做到这一点。我做得对还是有一些改进空间?

enter image description here 我希望从这张图片中得到以下查询答案:

  • 用户提出的问题
  • 向用户询问的问题
  • 全部回复问题。
  • 谁回答了一个问题(这是我对上述图片的疑问,因为我没有与回复的用户直接联系。我想的一个解决方案是从用户顶点到问题顶点的边缘,但我不确定是它有效与否)

1 个答案:

答案 0 :(得分:3)

我认为你的模型是明智的

我为您的问题展示了一些示例Neo4j Cypher声明:

用户提出的问题
MATCH (u:User {name:{name}})-[:ASKED]->(q:Question) RETURN q
向用户询问问题
MATCH (u:User {name:{name}})<-[:ASKEDTO]-(q:Question) RETURN q
都回复了一个问题。
MATCH (a:Answer)<-[:REPLYTO]->(q:Question {id:{question}) RETURN a
谁回答了一个问题
MATCH (u:User)-[:REPLY]->(a:Answer)<-[:REPLYTO]->(:Question {id:{question}) RETURN a,u

请随时查看Neo4j online course了解详情。