Neo4j лучший способ смоделировать график - PullRequest
0 голосов
/ 06 февраля 2020

В блоге есть сообщение https://neo4j.com/blog/modeling-a-multilevel-index-in-neoj4/, в котором говорится

Основная проблема c, которую мы пытаемся здесь решить, - это упорядочение событий по временной шкале и запрос на диапазоны событий, упорядоченные по времени, без необходимости загружать всю временную шкалу или выполнять сортировку по внешнему индексу, например Lucene (что очень дорого).

В 2012 году этот метод был хорошим способом построения график, который по-прежнему актуален. С тех пор (я не знаю, когда именно) были введены временные значения и индексы для этих значений. См. https://neo4j.com/docs/cypher-manual/current/syntax/temporal/

Есть ли еще какое-то преимущество в построении графика, как в сообщении в блоге, или просто использует временные значения как путь к go сейчас?

Также приветствуется любая дополнительная информация о версионных узлах (на временной шкале) и размещении событий (на временной шкале).

1 Ответ

2 голосов
/ 06 февраля 2020

Поскольку новые временные типы могут быть проиндексированы, а также поддерживают поиск по диапазонам , подход многоуровневого индекса теперь устарел.

Например, предполагая, что узлы Event имеют date свойство со значением date и наличием index для :Event(date), теперь вы можете просто сделать это, чтобы эффективно получить (в порядке возрастания даты) все Event с 2011-01-01 по 2011-01-03 включительно:

MATCH (e:Event)
WHERE date({month:1,day:1,year:2011}) <= e.date <= date({month:1,day:3,year:2011})
RETURN e ORDER BY e.date
...