Я новичок в neo4j и cypher, с опытом работы около недели ... Я работаю над небольшим проектом по манипулированию графиком десятков тысяч пакетных заданий TWS, выполняемых на мэйнфрейме моей компании. Ключевая миссия - выяснить, что мы назвали ключевым путем пакетных заданий последнего пакета в полночь, который на самом деле является взвешенным кратчайшим путем в neo4j. Я уже достиг этой цели, используя шифр, как показано ниже.
MATCH (a:Job {Jobname:...}),(b:Job {Jobname:...})
call apoc.algo.dijkstra(a,b,'runafter>','Duration') YIELD path, weight
RETURN path,weight`
Я создал python с драйвером neo4j, и он запускается каждый день автоматически, чтобы извлекать данные пакетных заданий из rbdms, и каждый день создавал новый график в neo4j, запускал шифры и форматировал ключевой путь результата, чтобы он соответствовал моему MySQL, чтобы я мог сравнивайте ключевой путь каждого дня
Но мне пришла в голову новая идея: что, если я могу улучшить этот шифр, чтобы узлам на возвращаемом пути была присвоена метка / или свойство?, чтобы позже я мог легко ссылаться на key-path снова, не вызывая каждый раз Дейкстру. Я знаю, что могу использовать свою программу python для этого сразу после возврата ключевого пути и сгенерировать серию cypher для выполнения этой работы, но я думаю, что должно быть решение только с cypher. Заранее большое спасибо!