Отличная новость для всех тех альфа-разработчиков Neo4j: Третий (и последний) выпуск Neo4j 2.3 вехой теперь готов к загрузке! Получите вашу копию Neo4j 2.3.0-M03 здесь .
Быстрое пояснение: релизы Milestone, подобные этому, предназначены только для разработки и экспериментов, и не все функции представлены в окончательной форме Нажмите здесь, чтобы увидеть наиболее стабильную версию Neo4j (2.2.5) .
Итак, какие крутые новые функции вошли в этот важный выпуск Neo4j ? Давайте погрузимся в.
Лучшие рекомендации с триадным выбором
( Что такое триадный отбор, спросите вы? )
Основой всех рекомендаций является простой способ взглянуть на треугольники на графике, а затем предложить новые для завершения. Это выглядит примерно так:
От узла последующие отношения наружу , чтобы найти B и C . Поскольку B и C также связаны, у нас есть треугольник, который предполагает сильные отношения, даже не смотря на какие-либо свойства. Таким образом, естественная рекомендация.
Чтобы продемонстрировать, давайте используем пример Movie Graph, включенный в Neo4j, для создания сети профессионального актера, объединяющей людей, которые работали над фильмом вместе:
MATCH (a:Person)--(:Movie)--(other:Person)
MERGE (a)-[:KNOWS]-(other)
Теперь мы могли бы порекомендовать новых людей для работы с Томом Хэнксом, ища людей, которых он знает, а затем других людей, которых они знают, которых Том не знает:
EXPLAIN MATCH (a:Person {name:"Tom Hanks"})-[:KNOWS]->(b:Person)-[:KNOWS]->(c:Person)
WHERE NOT (a)-[:KNOWS]->(c)
RETURN c.name
Мы использовали EXPLAIN для отображения плана выполнения, где вы заметите новый оператор TriadicSelection, который оптимизирует решение для этого запроса.
Собственность должна существовать
В крупных организациях несколько приложений имеют доступ к одной и той же базе данных. Именно тогда ограничения полезны для дополнения соглашений на уровне приложений.
Придерживаясь графика фильма, мы можем настаивать на том, что свойство title существует во всех фильмах:
CREATE CONSTRAINT ON (m:Movie) ASSERT exists(m.title)
(Это свойство должно существовать только для Neo4j Enterprise Edition.)
удалять
Удаление узла вместе с любыми существующими отношениями является настолько распространенной операцией, что мы добавили специальный вариант в DELETE, который кратко выражает именно это.
Например, мы можем удалить ошибочно добавленного персонажа из графика фильма:
MATCH (a:Person) WHERE a.name = "Emil Eifrem" DETACH DELETE a
Windows Power!
Пользователи Windows теперь могут использовать полный набор сценариев Powershell для управления Neo4j , что делает его удобным для организации управления Neo4j.
Предупреждения о запросах в браузере Neo4j
Чтобы помочь вам написать наилучшие возможные запросы, Cypher теперь выдает предупреждения о запросах, которые могут быть менее чем удивительными. В браузере Neo4j вы можете заметить небольшой желтый предупреждающий знак, когда что-то в вашем запросе может быть улучшено.
Нажмите на предупреждение, и вы получите хорошее объяснение проблемы, например, это объяснение расчета декартового произведения:
Больше возможностей
Выпуск Milestone 3 также включает в себя ряд других новых функций, таких как:
- Запросы диапазона могут теперь быть решены, используя поиск индекса
- Функция
exists()
может использовать сканирование индекса LIMIT
влияет на планирование затрат- Предикаты неравенства теперь могут быть связаны в форме
0 < n.prop < 10
Обратная связь запрошена
На этом этапе Neo4j 2.3 почти полностью готов, поэтому, пожалуйста, попробуйте и дайте нам знать, что вы думаете о функциях.
Ура,
Andreas
Загрузить: http://neo4j.com/download/#milestone
Документация: http://neo4j.com/docs/milestone/
Справочная карта Cypher: http://neo4j.com/docs/milestone/cypher-refcard
Пожалуйста, отправьте отзыв по адресу : [email protected]