Neo.DatabaseError.Statement.ExecutionFailed
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Neo.DatabaseError.Statement.ExecutionFailed相关的知识,希望对你有一定的参考价值。
我的查询意图是返回多个节点中的两个节点或图形的选定部分之间的关系作为子图。我在运行以下查询时收到错误消息:
with ['社会主义现代化建设', '中国共产党中央委员会', '香港', '依法治国', '澳门', '台湾同胞', '改革开放', '春节(中国传统节日)', '习近平', '中华人民共和国中央军事委员会', '全面深化改革', '中华人民共和国主席', '人民大会堂(1960年营口卷烟厂注册卷烟品牌)', '中国共产党中央委员会总书记', '团拜会'] as value_list
match (n:Node)
where n.value in value_list
with collect(n) as result
unwind result as source
unwind result as target
match paths = shortestPath((source)-[*1..3]-(target))
with paths limit 20000
return paths
我得到这个消息:
Neo.DatabaseError.Statement.ExecutionFailed Neo.DatabaseError.Statement.ExecutionFailed:当起始节点和结束节点相同时,最短路径算法不起作用。如果您在笛卡尔积之后执行shortestPath搜索,可能会对传递给shortestPath的某些行具有相同的开始和结束节点。
如果您不想遇到此异常,并且可以接受丢失这些行的结果的可能性,请通过将
cypher.forbid_shortestpath_common_nodes
设置为false来在Neo4j配置中禁用此功能。如果您不能接受缺失的结果,并且确实想要两个公共节点之间的shortestPath,那么使用标准Cypher可变长度模式表达式重新编写查询,然后按路径长度排序并限制为一个结果。
我的neo4j配置文件中没有这行:
cypher.forbid_shortestpath_common_node=false
关于如何解决这个问题的建议将不胜感激。
答案
成功!!只添加where source<>target
PROFILE
with ['社会主义现代化建设', '中国共产党中央委员会', '香港', '依法治国', '澳门', '台湾同胞', '改革开放', '春节(中国传统节日)', '习近平', '中华人民共和国中央军事委员会', '全面深化改革', '中华人民共和国主席', '人民大会堂(1960年营口卷烟厂注册卷烟品牌)', '中国共产党中央委员会总书记', '团拜会'] as value_list
match (n:Node)
where n.value in value_list
with collect(n) as result
unwind result as source
unwind result as target
match paths = shortestpath((source)-[*0..3]-(target))
where source<>target
with paths limit 20000
return paths
以上是关于Neo.DatabaseError.Statement.ExecutionFailed的主要内容,如果未能解决你的问题,请参考以下文章