Эффективный способ хранения метаданных в Neo4j - PullRequest
0 голосов
/ 31 января 2020

У меня есть график Neo4j, узлы, отношения, свойства, работает просто отлично. Единственное, мне нужно добавить некоторые понятные и понятные описания ярлыков, типов отношений. Есть ли эффективный способ сделать это в Neo4j? Не хочу добавлять их в каждый узел.

Спасибо.

1 Ответ

2 голосов
/ 31 января 2020

Некоторые параметры:

  1. Используйте описательные имена для меток и типов отношений. Это исключает необходимость в отдельных метаданных и очень удобно.

  2. Создайте отдельные Metadata узлы, подобные этому, где name - это имя метки или типа (при условии, что имена уникальны), а desc - это описание:

    (:Metadata {name: 'Foo', desc: '...'})
    

    Создайте индекс для :Metadata(name) для эффективного запроса.

    Когда вам нужно просмотреть метаданные для узла, Вы можете сделать запрос следующим образом:

    MATCH (f:Whatever {id: 123})
    MATCH (m:Metadata) WHERE m.name in LABELS(f)
    RETURN f, COLLECT(m) AS metadataList
    

    Для отношений:

    MATCH ()-[r:SOME_TYPE]->()
    MATCH (m:Metadata) WHERE m.name = TYPE(r)
    RETURN r, m
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...