Статьи

Выпущена версия Neo4j 2.3.0 Milestone 3

Отличная новость для всех тех альфа-разработчиков 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 вы можете заметить небольшой желтый предупреждающий знак, когда что-то в вашем запросе может быть улучшено.

Нажмите на предупреждение, и вы получите хорошее объяснение проблемы, например, это объяснение расчета декартового произведения:

Пример предупреждения о декартовом произведении в браузере 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]

GitHub: http://github.com/neo4j/neo4j/issues