当前位置: 首页 > 知识库问答 >
问题:

Neo4j-如何保存密码查询结果以便以后使用?

常乐
2023-03-14

我在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或maintaning:Person(mark)索引扫描所有节点)

我怎样才能以更优雅的方式做到这一点?

共有1个答案

惠凯歌
2023-03-14

而在Cypher中未实现缓存匹配 语句您可以执行以下操作:

CREATE (CACHE:Cache {name: 'cachequery'}) WITH CACHE
match (j:Person)-[..........complex query running for a long time] 
MERGE (CACHE)-[:cacheContains]->(j)
return j

从缓存中获取数据:

MATCH (CACHE:Cache {name: 'cachequery'})-[:cacheContains]->(j)
WITH collect(j) as CACHE
...and do something with the data

或者,您可以通过标签进行操作:

match (j:Person)-[..........complex query running for a long time] 
SET j :CacheQuery
return j

从缓存中获取数据

MATCH (j:Person:CacheQuery)
WITH collect(j) as CACHE
...and do something with the data

 类似资料:
  • 另外,如果是匹配查询,则参数如下所示: 注电子邮件周围没有引号,所以如果您有一个匹配和设置参数查询,您的参数定义如下所示: 有人能解释这种明显的不一致吗? 这将返回未定义的姓氏。

  • 问题内容: 我正在处理ETL,并且在SSIS包中的SQL任务中具有以下sql代码。这就是我编码的方式。我正在从表中选择数据,并将该查询的结果作为文件。我希望此附件以CSV格式发送。我该怎么做? 任何帮助将不胜感激。提前致谢。 问题答案: 添加应该可以解决问题。 添加可能会稍微清除结果。所有的论点都可以在这里找到

  • 本文向大家介绍如何临时存储数据以便以后在Oracle中使用?,包括了如何临时存储数据以便以后在Oracle中使用?的使用技巧和注意事项,需要的朋友参考一下 问题: 您要临时存储SQL的结果。 解 我们可以使用CREATE GLOBAL TEMPORARY TABLE语句创建一个表,该表临时存储会话的数据。此外,您可以指定是保留会话的临时表数据还是事务提交之前。我们可以进一步使用ON COMMIT

  • 我的数据库中只有大约16000个节点,当我匹配n返回n时,我从来没有得到任何图回来,任何原因或如何修复?

  • 问题内容: 有没有一种简单的方法可以从Linux命令行运行MySQL查询并以CSV格式输出结果? 这是我现在正在做的事情: 当有很多列需​​要用引号引起来时,或者结果中有引号需要转义时,它将变得混乱。 问题答案: 从http://www.tech-recipes.com/rx/1475/save-mysql-query-results-into-a-text-or- csv-file/ 使用此命令

  • 问题内容: 我有一个文件的InputStream,我使用apache poi组件像这样从中读取: 问题是我需要多次使用同一流,并且POIFSFileSystem在使用后会关闭流。 缓存来自输入流的数据,然后将更多输入流提供给不同的POIFSFileSystem的最佳方法是什么? 编辑1: 高速缓存是指存储供以后使用,而不是用来加速应用程序。将输入流读入数组或字符串,然后为每次使用创建输入流是否更好