2014-12-30 2 views
1

Как обеспечить, чтобы все узлы метки имели общие свойства?Есть ли свойства Label - есть ли схема Neo4j для ярлыков?

Например, я хочу, чтобы создать свойство «имя» для всех узлов метки «Человек», но я могу сделать ошибку в написании имени свойства (namee! К примеру)

+0

Это должно быть обработано на уровне приложения ИМХО. Neo4j - схема свободная. Возможно, вы можете добиться этого, написав неуправляемое расширение, связав транзакцию. возможно, этот пример может помочь вам https://github.com/graphaware/neo4j-uuid –

ответ

3

Существует нет такого механизма, встроенного в Neo4j сегодня (Текущая версия Neo4j на момент написания 2.1.6). То, что вы описываете, - это какая-то схема (если вы сравниваете, например, DDL для РСУБД), а Neo4j - в основном схема. Этот тип структурной целостности составляет quite often handled in the application layer for NoSQL databases.

Описаны только операции схемы, доступные сегодня для Neo4j here.

В настоящее время они включают в себя:

  • Unique - например CREATE CONSTRAINT ON (p:Person) ASSERT p.name IS UNIQUE
  • Индексы - создание индекса на этикетке, например. CREATE INDEX ON :Person(name)

Комментарий на этот ответ от Michael Hunger, который является частью команды за Neo4j указывает, что больше ограничений будут доступны для Neo4j в будущем. Кроме того, Майкл указывает на следующие альтернативы:

  • Посмотрите на Structr, слой выше Neo4j, что среди прочего претворяет более строгую схему (проверьте схемы документы here)
  • SylvaDB, удобном для используйте слой выше Neo4j, который также имеет поддержку схемы. Кажется, очень

В дополнение к этому, FrobberOfBits указал на инструмент NeoProfiler, который содержит ряд профайлеров, большинство из которых работают очень простых Cypher запросов к базе данных и предоставляют сводные статистические данные. Некоторые профилировщики действительно обнаружат данные на вашем графике, а затем создадут другие профилировщики, которые будут работать позже. Например, если в данных обнаружена метка «Человек», в очередь выполнения будет добавлен профайлер меток для проверки совокупности узлов с этой меткой.

+1

Бесстыдный плагин здесь - пока в neo4j нет таких механизмов, встроенных в neo4j, есть еще некоторые инструменты, которые помогают с определениями схем в neo4j. Есть такое, которое рассматривает данные в существующем графе и выводит «metagraph» из того, что описывает, как граф соединен вместе, и какие правила он следует. https://github.com/moxious/neoprofiler – FrobberOfBits

+1

есть также structr.org и sylvadb, которые добавляют более жесткую информацию о схеме поверх Neo4j. В будущем в Neo4j добавятся дополнительные ограничения. Вы также можете сделать это самостоятельно, используя обработчик транзакций-событий в Java, я начал и PoC некоторое время назад. –

Смежные вопросы