neo4j BOLT查询并不总是稳定地工作

2024-07-08 15:27:36 发布

您现在位置:Python中文网/ 问答频道 /正文

使用任意长度的neoj'

stmt = MATCH (n:Month {ID: {start} }),(m:Month {ID: {stop}}),p = shortestPath((n)-[r:nextMonth*..100000]-(m)) RETURN LENGTH(p)
dict = {'start': '201507', 'stop': '201509'}
result = list(session.run(stmt, dict))[0][0]

当我使用web界面时,Cypher查询返回2的结果(这是正确的结果)。当我运行python命令时,大多数情况下结果都是[](即没有值),而不是值2。有时它运行良好,有时不运行。令我困惑的是,它并没有一直给出正确的值,而且我可以手动运行查询而没有问题。在

这只是一个较大的代码文件的摘录。我想知道会议是如何建立或结束的吗?neo4j使用了正确的会话类型。会话。会话对象位于0x04CCD7F0

欢迎提出任何关于这是为什么或用于故障排除的想法。在


Tags: idreturnsessionmatchresultstartlengthdict
2条回答

试着运行这个:

result = session.run(stmt, dict).peek()[0]

当我得到的回报会话.运行()“,我使用peek()方法(如果返回值只有一行)。否则,最好将结果与循环一起使用,因为这会返回一个collection对象,该对象有助于提高代码的性能,如果结果很大,并且您将所有这些都转换为一个列表,那么您可能会用这个来破解内存。在

我确实找到了问题的根源。在

我用了两个疗程:

Session1在那里创建节点(上面显示的语句no) 第2个任务是查找路径的长度(如上所示)

添加最小延迟(时间。睡觉(0.1)在创建和路径查询之间解决了这个问题。在

我怀疑session2已经在执行,而节点的创建还没有完成。在

相关问题 更多 >

    热门问题