Как использовать ограничение свойства в кратчайшем пути на AgensGraph? - PullRequest
0 голосов
/ 25 февраля 2019

Я попытался найти кратчайший путь по двум вершинам.

Но при запросе CYPHER для MIME произошла ошибка.

Как найти кратчайший путь между вершинами?

agens (AgensGraph 1.3.1, based on PostgreSQL 9.6.2)
Type "help" for help.

agens =# match p = shortestpath( (l1:l{id:1})-[:e*]->(l2:l{id:11111}) ) return nodes(p); 
ERROR:  property constraint is not supported
LINE 1: match p = shortestpath( (l1:l{id:1})-[:e*]->(l2:l{id:11111})...

1 Ответ

0 голосов
/ 25 февраля 2019

Невозможно использовать ограничение свойства в более старой версии AgensGraph.

Подумайте об обновлении версии AgensGraph.

agens (AgensGraph 2.1.0, based on PostgreSQL 10.4)
Type "help" for help.

agens =# match p = shortestpath( (l1:l{id:1})-[:e*]->(l2:l{id:11111}) ) return nodes(p); 
                                               nodes                                                
----------------------------------------------------------------------------------------------------
 [l[4.1]{"id": 1},l[4.10]{"id": 11},l[4.91]{"id": 111},l[4.820]{"id": 1111},l[4.7381]{"id": 11111}]
(1 row)

Если это невозможно, используйте вместо свойства «WHERE»ограничение.

agens (AgensGraph 1.3.1, based on PostgreSQL 9.6.2)
Type "help" for help.

agens =# match p = shortestpath( (l1:l)-[:e*]->(l2:l) ) where l1.id = 1 and l2.id = 11111 return nodes(p);
                                               nodes                                                
----------------------------------------------------------------------------------------------------
 [l[4.1]{"id": 1},l[4.10]{"id": 11},l[4.91]{"id": 111},l[4.820]{"id": 1111},l[4.7381]{"id": 11111}]
(1 row)
...