Похожие презентации:
Neo4j
1. NEO4J
ОсновыПодготовил:
Доцент кафедры ИП
ИПТИТ РТУ МИРЭА
Лоскутов Иван Андреевич
Москва, 2025
1
2. Используемое ПО
• Javahttps://www.java.com/ru/download/
• Java JDK21
https://www.oracle.com/java/technol
ogies/downloads/#jdk21-windows
• Neo4j 5.22.0
http://dist.neo4j.org/neo4jcommunity-5.22.0-windows.zip
2
3. Установка
• Установка папки с neo4j в диск С, не на рабочий стол!• Neo4j при установке необходимо прописать в системе:
Вводим: SystemPropertiesAdvanced.exe
3
4. Установка
45. Установка
Прописываем прямую загрузку Neo4j через PowerShellВводим: Set-ExecutionPolicy RemoteSigned
5
6. Запуск
67. Начальный экран
78. Типовой ввод кода в Neo4j
MATCH (p:Person {name: 'Ali', from:'Tver'})[f:FRIENDS {since: 2020}]->(friend) RETURN p, f, friend"MATCH" - функциональная команда "найти"
"(p:Person {name: 'Alice'}) " - нода / узел, в круглых скобках:
"p" - выбранная "временная" переменная
"Person" - лейбл ноды
"{ }" - параметры связи / узла "name" и "from"
":" - двоеточие, присвоении значений параметрам "name" и "from"
8
9. Типовой ввод кода в Neo4j
MATCH (p:Person {name: 'Ali', from:'Tver'})[f:FRIENDS {since: 2020}]->(friend) RETURN p, f, friend"[ ]" – связь, т.е. то, что характеризует объект, обозначается
квадратными скобками. В нашем случае - [f:FRIENDS], где:
"f", как и "p" - выбранная "временная" переменная
":FRIENDS {since: 2020}" - рёво / ребро. Она описывает формируемую
связь. Для данной связи всегда нужно ставить":" - двоеточие
{since: 2020} - параметры связи, в котором прописано, что значение
FRIENDS было достигнуто начиная ("since") с 2020.
9
10. Типовой ввод кода в Neo4j
MATCH (p:Person {name: 'Ali', from:'Tver'})[f:FRIENDS {since: 2020}]->(friend) RETURN p, f, friend"-" блоковая связь, исходящая от изначального нода: "})-[f:".
Поясняется, что это направление связи, которое исходит от узла слева.
"->" - стрелка, исходящая от ребра. Обозначает, что связь (ребро)
предназначено для левого узла, потому указывает на него
"friend": узел без конкретных свойств или меток
RETURN - функциональная команда "вернуть"
p, f, friend - ссылки на соответствующие параметры.
10
11. Основные команды. Создание нода
2 варианта:а) построчно:
CREATE (u1:Person {name: "Evgeny", from: "Krasnodar"})
CREATE (u2:Person {name: "Alisa", gender: 'female'}})
б) однострочно:
CREATE (u1:Person {name: "Evgeny", from: "Krasnodar"}),
(u2:Person {name: "Alisa", gender: 'female'})
В примере указано, что для узлов нет необходимости указывать всю
информацию. При ее отсутствие созданию узла ничего не повредит. 11
12. Основные команды. Добавление параметров в узел
MATCH (p:Person {name: "Evgeny"})set p.id=0.
В коде мы отправили запрос в БД с целью идентифицировать лейбл
нода Person, с именем (name) "Evgeny"
С помощью функции "set" можно или обновить свойства узлов / ребер
или же добавить новые параметры, как мы это сделали с "id".
Таким образом мы добавляем дополнительный параметр "id" в
"Evgeny" и присваиваем ему значение, равно "0".
12
13. Основные команды. Удаление нодов
MATCH (n)Where id(n) = 3
Detach delete n
В данном коде мы реализуем следующие действия: поиск некоторого
параметра "n" (по сути он присваивается всем параметрам, поскольку
сразу не задан).
Далее мы конкретизируем: привязываем "n" к параметру "id" и
указываем его значение для поиска. В нашем случае, это "3".
Оператор "WHERE" применяется для фильтрации.
13
14. Основные команды. Синтаксические привязки
Для Neo4j нет разницы, как записывать команды: результат будетодинаковым, однако важно учитывать синтаксис привязок:
знак "," - запятая,
операторы:
- "WITH",
- "OPTIONAL MATCH",
- "UNION",
- "UNION ALL"
- "CALL".
14
15. Основные команды. Поиск параметров и узлов
MATCH – «найти», применяется для различных случаев, средикоторых поиск может вестись по разным вариантам:
1) по метке:
MATCH (e:Person)
RETURN e
Как уже видно, поиск происходит по лейблу ноды "Person"
15
16. Основные команды. Поиск параметров и узлов
2) по свойствам:MATCH (e:Person {name: 'Ali'})
RETURN e
Данный код ищет в лейбле ноды "Person" по "name" соответствие с
именем "Ali". Однако, может быть ситуация, когда изначальный
параметр не уникален. В таком случае нужно осуществить поиск по
большему количеству параметров:
MATCH (e:Person {name: 'Ali', from: 'Tver'})
RETURN e
16
17. Основные команды. Поиск параметров и узлов
3) По условию "WHERE"Создадим несколько нодов
CREATE (u1:Person {name: "Alexander", from: "Kaliningrad", age: "30"})
CREATE (u2:Person {name: "Axel", from: "Kirov", age: "20"})
CREATE (u3:Person {name: "Amber", from: "Sarov", age: "18"})
Далее реализуем поиск по параметру
MATCH (e:Person)
WHERE e.age > 25
RETURN e
Функция ищет по лейблу нода "Person" параметр "age", который будет
больше заданного, т.е. "25". В результате - выведен узел "Alexander"
17
18. Основные команды. Поиск параметров и узлов
4) По идентификатору нода:MATCH (n)
WHERE id(n) = 123
RETURN n
Логика аналогична разделу "удаление нодов"
18
19. Основные команды. Поиск параметров и узлов
5) По связиMATCH (p:Person)-[:FRIEND]->(friend)
WHERE p.name = 'Ali'
RETURN friend
В данном случае реализуется поиск с учетом связи. Как видно, имеется
некоторая связь между лейблом нода "Person" и "friend". Наша задача
найти в "Person" такой параметр, который будет содержать в себе имя
'Ali'.
19
20. Основные команды. Удаление параметров
1) Удаление параметра из узла:MATCH (n:Person)
WHERE n.name = 'Ivan '
REMOVE n.age
Эта команда удалит параметр «age» из нода «Ivan»
20
21. Основные команды. Оператор объединения AND
Оператор используется для объединения разных элементов запроса,которые необходимо выполнить одновременно. Зачастую используется
с “WHERE”, применим к логическим операциям.
MATCH (p:Person)
WHERE p.age > 30 AND p.name = 'Ali' AND p.city = 'Moscow'
RETURN p
Эта команда найдет нод с параметром «age» равным 30, «name» - «Ali»
и «city» - Moscow.
21
22. Основные команды. Удаление параметров
2) Удаление параметра из отношения:MATCH (a:Person)-[r:KNOWS]->(b:Person)
WHERE a.name = ‘Ivan' AND b.name = ‘Petya'
REMOVE r.since
Эта команда удалит параметр «since» из ребра «KNOWS»
22
23. Основные команды. Удаление параметров нода
3) Удаление, она же «очистка» параметров – аналогична заменепараметров, но работает сразу на группу:
MATCH (n:People)
WHERE n.name = "Ali"
SET n = {}
Эта команда удалит абсолютно
все параметры из нода «Ali»
23
24. Основные команды. Удаление параметров ребра
3) Добавим свойство связи:MATCH (p:People)-[z:friend]->(e:People)
WHERE p.name = 'Ali' AND e.name = 'Vasya'
set z.since='2020'
А теперь удалим его:
MATCH (p:People)-[z:friend]->(e:People)
WHERE p.name = 'Ali' AND e.name = 'Vasya'
set z ={}
Таким образом параметр «since» равный «2020» и иные свойства
«friend» были удалены
24
25. Основные команды. Добавление параметров к очищенному узлу
3) После выполнения полной очистки, нод, как таковой, останется, иего единственным параметром станет <id> (графовый вид) / «identity»
(табличный вид). Для добавления параметров потребуется ввести:
MATCH (n)
Where id(n) = 2
set n.name='Ali'
return n
В результате у нода будет добавлено свойство «name» равное «Ali»
25