Статьи

Neo4j 2.0 идет


neoiscoming

Дом Neo4j Граф Базы данных является одним из Великих Домов NOSQL и главным дворянским домом Графа; многие меньшие дома клянутся им. В былые времена они правили как короли графа; с момента захвата Совокупного магазина они стали Хранителями Пути. Их место, Сан-Матео, является древним замком, известным своими суши. Их символ — осьминог, мчащийся по белому полю, и их слова «Neo4j 2.0 Is Coming», один из немногих домашних девизов, которые должны быть предупреждением, а не хвастовством. Члены семьи, как правило, худощавы и длинны, с золотистыми волосами и голубыми глазами.

Ой … извините, я увлекся … но Neo4j 2.0 принес с собой несколько новых замечательных функций. Взгляните на следующую презентацию Андреаса Коллегера.

Ой … извините, я увлекся … но Neo4j 2.0 принес с собой несколько новых замечательных функций. Взгляните на следующую презентацию Андреаса Коллегера.

С ним приходят функциональность 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,  чтобы это произошло.

Вот краткий обзор того, на что это похоже… сообщение в блоге об этом скоро.

снимок экрана