【发布时间】:2016-12-08 04:32:05
【问题描述】:
我在 neo4j 浏览器中运行不同类型的密码查询来检查我在 neo4j 图形数据库中的数据。这是一个离线分析工作,所以数据库是只读的(我可以写但不会有新数据)
我想要一个“neo4j 浏览器控制台会话”来保存查询结果以供以后使用,例如:
var Persons = match (j:Person)-[..........complex query running for a long time] return j
所以以后我可以运行多个查询(比前一个运行得更快),比如
start with Persons as p match (p)-[]->q...
我该怎么做?我知道我可以使用“with”将它们放在一起,但第一个慢查询会运行多次,我不希望这样。
目前我在我的节点上设置了一个属性来标记结果
match (j:Person)-[...complex] set j.mark=1
match (j:Person {mark:1})........
但我认为它很丑陋,并且在多个用户使用数据库时会引起问题。并且还有额外的成本(扫描所有带有标签的节点 Person 或维护 :Person(mark) index )
我怎样才能以更优雅的方式做到这一点?
【问题讨论】:
-
你是如何使用 Neo4j 的?通过 REST API、通过 Java 驱动等?
-
@GaborSzarnyas 我正在使用“事务/提交”HTTP 端点和 REST API。 (实际上我只是在 neo4j-browser 中输入命令,因为它可以帮助我将结果可视化)