Сложные свойства отношений в базе данных Neo4j

Я разрабатываю планировщик маршрутов на Neo4j для образовательных целей. Я разработал некоторый алгоритм по этому поводу, и я использую как запрос шифрования, так и Rest API в своем проекте. Но есть проблема, которая не устранена мной. Я пытаюсь вычислить различные маршруты от neo4j по dijkstra, shorttestPath и мой собственный алгоритм.

Например, есть несколько бессмысленных маршрутов, которые вычисляются из neo4j. Выходные данные многократно передают пользователю на другую шину, когда я использую алгоритм dijsktra в neo4j. Также, это аналогично с shorttestPath. Я хочу дать 5-кратный максимум передачи. Как я могу предотвратить эту проблему?

Кроме того, neo4j выдает выходные данные в следующем сегменте кода;

0 => array(
        'Stop' => '1',
        'StopID' => '163',
        'StopName' => 'KALIHI-PALAMA BUS FACILITY',
        'RouteID' => (int) **132**,
        'RouteName' => 'Kalihi via School Street Express',
        'RouteShortName' => 'W3',
        'Relationship' => array(
            'RouteID' => (int) 79,
            'RouteType' => 'ROUTE',
            'EndNode' => '1'
        )
    ),
    (int) 1 => array(
        'Stop' => '0',
        'StopID' => '4523',
        'StopName' => 'KALIHI TRANSIT CENTER',
        'RouteID' => (int) 1,
        'RouteName' => 'Kaimuki-Kalihi',
        'RouteShortName' => '**132**',
        'Relationship' => array(
            'RouteID' => (int) 1,
            'RouteType' => 'ROUTE',
            'EndNode' => '54'
        )
    ),
    (int) 2 => array(
        'Stop' => '54',
        'StopID' => '38',
        'StopName' => 'S BERETANIA ST + OPP KALAKAUA AVE',
        'RouteID' => (int) **2**,
        'RouteName' => 'Waikiki-School-Middle',
        'RouteShortName' => '2',
        'Relationship' => array(
            'RouteID' => (int) 2,
            'RouteType' => 'ROUTE',
            'EndNode' => '54'
        )
    ),
    (int) 3 => array(
        'Stop' => '53',
        'StopID' => '37',
        'StopName' => 'KALAKAUA AVE + S KING ST',
        'RouteID' => (int) **132**,
        'RouteName' => 'Waikiki-School-Middle Limited',
        'RouteShortName' => '2L',
        'Relationship' => array(
            'RouteID' => (int) 132,
            'RouteType' => 'ROUTE',
            'EndNode' => '53'
        )
    ) ...

Нет смысла давать RouteID=2 Bus.Because, когда вы выходите из автобуса, вы можете снова сесть на ту же самую шину. Это не умно. Как я могу предотвратить это?

Я обычно использую код в следующем сегменте;

START n=node(5), m=node(45)
MATCH p=shortestPath(n-[r:ROUTE*..100]-m)
RETURN p

Спасибо, С наилучшими пожеланиями

0 ответов

Другие вопросы по тегам