2014-02-07 4 views
0

Я хотел знать, что я выполняю правильное сканирование Graph DB или нет. Я пытаюсь с Titan Graph Database и neo4jВнедрение сценария Q/A с помощью базы данных графиков

user-1 задал вопрос this is question1 к user-2

user-2 ответил на этот вопрос

user-3 также ответил на этот вопрос

Вот изображение Как я делаю это. Я делаю это правильно или есть некоторое улучшение?

enter image description here Я хочу, чтобы следующий ответ запрос от этой картины:

  • Вопрос, заданный пользователем
  • Заданный вопрос пользователю
  • Все ответить на вопрос.
  • Кто ответил на вопрос (вот мое сомнение с приведенным выше рисунком, потому что у меня нет прямого подключения к пользователю, который ответил. Одно из решений, которое я думаю, будет краем от вершины пользователя до вершины вопроса, но я не уверен, что это она эффективна или нет)
+0

Я думаю, что собираюсь сразу после просмотра этого http://1.bp.blogspot.com/-J0yE-6wPAbY/URJVjDO9ETI/AAAAAAAAI28/BTuJDJw5uWA/s1600/SIB+schema+v1.jpeg – manish

ответ

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 для деталей.