Почему в моем запросе в neo4j есть один и тот же узел в пути? - PullRequest
0 голосов
/ 29 декабря 2018

Вот как выглядит cypher sql:

match p=(:Devices{name:"123.123.123.123"})-[r:Cost*..6]->(:Devices{name:"123.123.123.124"}) with p return p;

Затем возвращается:

{u'p': (123.123.123.123)-[:Cost {Cost: 21}]->(123.123.123.120)-[:Cost {Cost: 92}]->(123.123.123.110)-[:Cost {Cost: 82}]->(123.123.123.119)-[:Cost {Cost: 91}]->(123.123.123.123)-[:Cost {Cost: 56}]->(123.123.123.130)-[:Cost {Cost: 24}]->(123.123.123.124)}

На моем пути есть кольцо и как избежать этого условия.

Наконец, почему мой запрос настолько решителен, и запрос пути в глубину 10 потратит около 1000 с-2500 с.

Вот мой конфиг:

dbms.memory.heap.initial_size=4096m
dbms.memory.heap.max_size=9192m
dbms.memory.pagecache.size=10g
dbms.threads.worker_count=16

1 Ответ

0 голосов
/ 29 декабря 2018

Возможно, вы хотели указать путь от 1 до 6 прыжков, а не ровно шесть:

match p=(:Devices{name:"123.123.123.123"})-[r:Cost*1..6]->
  (:Devices{name:"123.123.123.124"}) with p return p;
...