Мы хотим использовать Neo4J для построения иерархии (древовидной структуры) категорий (продуктов). Наши данные поступают с Kafka (Sink Connector). Мы планируем использовать Neo4J Streams Source для прямой трансляции обновлений нашего дерева категорий обратно на Kafka, используя neo4j-4.0.3.
Обычно, - Streams Source - путь к go заключается в указании шаблон и связать его с топологией Kafka c, как описано здесь: https://neo4j.com/docs/labs/neo4j-streams/current/#neo4j_streams_source
Чтобы использовать возможности Neo4J, мы хотели бы отправить коллекцию узлов каждый раз одновременно . Эта коллекция состоит из всех узлов в запросе, который возвращает путь: nodes(path)
. Более конкретно, такой набор узлов представляет путь от листа до root.
Две нерабочие альтернативы, о которых мы могли подумать:
- Использовать определение шаблона . Из того, что я понимаю, шаблон, кажется, ограничен, чтобы соответствовать только одному узлу (возможно, узлу с несколькими метками) - https://neo4j.com/docs/labs/neo4j-streams/current/#source -patterns - и, следовательно, мы можем только выводить один узел за раз .
- Потоковая коллекция узлов (на пути) обратно в узел с другой меткой и использование этого метка выходного узла соответствует шаблону {*}. Neo4J, являясь базой данных графов, ориентированных на свойства, не позволяет мне записывать «коллекцию узлов» в один узел.
Подводя итог, нам нужно вывести поток узлов в каждый узел. Кафка запись. Есть предложения о том, как этого добиться?