2015-06-01 4 views
1

Я строю график Neo4J, который должен содержать контролируемый словарный запас (а именно тетаурус Getty AAT). Всякий раз, когда я добавить новый термин из тезауруса у меня есть отношения:Словарь Neo4J Плотный узел?

(aat:Thesaurus)-[:LISTS]->(term:Term {term:"Something"})

У меня есть прочитать немного о проблеме плотного узла в Neo4j и мне интересно, если у меня есть 100000 т - [: СПИСКИ] - > термин, если это вызовет проблему по мере роста нашей базы данных. Есть идеи?

+0

В целом, вероятно, имеет смысл просто вставить это в свойство или ярлык. –

+0

О, так что-то вроде (термин: Термин: AATTerm)? Просто интересно, является ли плотный узел реальной проблемой, если я буду делать это так, как я предлагал. –

+0

Другой возможной проблемой является использование метамодели. Например, я пытался моделировать элементы как классы ... поэтому User - [: IS_A] -> Person. Если бы я сделал это, и у меня было миллион пользователей, было бы миллион подключений к Лицу. Я понимаю, что могу сделать это с помощью метки, но если есть несколько уровней IS_A, это не сработает. –

ответ

1

Если есть только один узел Thesaurus, то вы можете избавиться от узла Thesaurus и отношений LISTS.

+0

Может быть несколько тезаури. Поэтому, если бы я хотел проверить, исходит ли термин из конкретного тезауруса, я мог бы сказать (t: Thesaurus) - [: LISTS] -> term. Я предполагаю, что я мог бы просто сохранить название тезауруса на самом терминах, как предлагает Майкл Хунгер, но этот способ, похоже, имеет лучшую структуру, просто интересно о производительности. –

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