Дом Neo4j Граф Базы данных является одним из Великих Домов NOSQL и главным дворянским домом Графа; многие меньшие дома клянутся им. В былые времена они правили как короли графа; с момента захвата Совокупного магазина они стали Хранителями Пути. Их место, Сан-Матео, является древним замком, известным своими суши. Их символ — осьминог, мчащийся по белому полю, и их слова «Neo4j 2.0 Is Coming», один из немногих домашних девизов, которые должны быть предупреждением, а не хвастовством. Члены семьи, как правило, худощавы и длинны, с золотистыми волосами и голубыми глазами.
Ой … извините, я увлекся … но Neo4j 2.0 принес с собой несколько новых замечательных функций. Взгляните на следующую презентацию Андреаса Коллегера.
Ой … извините, я увлекся … но Neo4j 2.0 принес с собой несколько новых замечательных функций. Взгляните на следующую презентацию Андреаса Коллегера.
Neo4j — Графическая база данных с открытым исходным кодом
С ним приходят функциональность Cypher MERGE и транзакционная конечная точка REST, начиная с Milestone 3 , а также метки узлов и индексы схем с момента первого выпуска .
Я хотел поиграть с новой функциональностью и посмотреть, какие тонкости она нам дает. Я использую образец набора данных, относящийся к киноиндустрии (фильмы, актеры, режиссеры и т. Д.), Который выглядит следующим образом:
CREATE (TheMatrix {title:'The Matrix', released:1999, tagline:'Welcome to the Real World'}) CREATE (Keanu {name:'Keanu Reeves', born:1964}) CREATE (Carrie {name:'Carrie-Anne Moss', born:1967}) CREATE (Laurence {name:'Laurence Fishburne', born:1961}) CREATE (Hugo {name:'Hugo Weaving', born:1960}) CREATE (AndyW {name:'Andy Wachowski', born:1967}) CREATE (LanaW {name:'Lana Wachowski', born:1965}) CREATE (JoelS {name:'Joel Silver', born:1952}) CREATE (Keanu)-[:ACTED_IN {roles:['Neo']}]->(TheMatrix), (Carrie)-[:ACTED_IN {roles:['Trinity']}]->(TheMatrix), (Laurence)-[:ACTED_IN {roles:['Morpheus']}]->(TheMatrix), (Hugo)-[:ACTED_IN {roles:['Agent Smith']}]->(TheMatrix), (AndyW)-[:DIRECTED]->(TheMatrix), (LanaW)-[:DIRECTED]->(TheMatrix), (JoelS)-[:PRODUCED]->(TheMatrix)....
Эти данные, как вы обычно создаете данные в Neo4j 1.9. Чтобы обновить его до 2.0 и использовать метки и индексы, нам просто нужно немного его обновить . Глядя на наш график, мы можем видеть, что у нас есть узлы, которые представляют актеров, режиссеров, фильмы, писателей и т. Д. Каждый из них также имеет основной способ нахождения на графике, имена для разных типов людей и названия для фильмов. , Поэтому мы создадим индексы для этих свойств для их отдельных меток:
CREATE INDEX ON :Actor(name); CREATE INDEX ON :Director(name); CREATE INDEX ON :Writer(name); CREATE INDEX ON :Producer(name); CREATE INDEX ON :Movie(title); ....
Затем мы сопоставим узлы на графике, которые должны иметь эти метки, и установим их. Например, каждый узел, имеющий свойство «title», является фильмом, а каждый узел, имеющий исходящее отношение «ACTED_IN», является актером.
MATCH node WHERE has(node.title) SET node:Movie; MATCH node WHERE (node)-[:ACTED_IN]->() SET node:Actor; ...
Да, это действительно так просто. Некоторые люди просили «Инструмент миграции», но реальность такова, что маленький Сайфер делает всю работу за нас.
Одна из новых конечных точек REST, доступных нам в Neo4j 2.0, позволяет нам получить список всех меток. Это было включено в Neography как метод list_labels . Мы можем использовать эти метаданные, чтобы исследовать график и создать интерфейс, который не требует большого количества кодирования или конфигурации.
Я собираюсь объединить VisualSearch.js и VivaGraph.js, чтобы это произошло.
Вот краткий обзор того, на что это похоже… сообщение в блоге об этом скоро.