neo4j 获取新节点列表(更改提要)

neo4j Get list of new nodes (change-feed)

Neo4j 有没有办法获取特定时间后创建的所有新节点的列表?就像内置的更改提要?

我知道这可以通过遍历 整个 图表并比较节点的日期是否大于之前设置的阈值来完成。

但是,这至少不是最优的,并且在 1000 万个节点图上表现不佳。

有没有办法知道是否添加了新节点? (或关系)某种更改提要,如内置布隆过滤器?

如果没有,关于每 x 分钟获取一次更改提要有什么想法吗?

你试过INDEX吗?使用索引,您的查询性能将得到提高。尝试在 属性 中创建与节点创建时间相关的索引。

CREATE INDEX ON :Person(created_at)

之后,在创建节点时,可以使用timestamp()函数,将当前时间戳保存在:Person个节点的属性created_at中。

CREATE (:Person {name:'Jon', created_at: timestamp()})
CREATE (:Person {name:'Doe', created_at: timestamp()})

然后:Person个节点的created_at属性就可以正常查询了,会用到索引

MATCH (p:Person)
WHERE p.created_at > 1502882338889 // given a timestamp...
RETURN p

此外,如果您不需要在给定时间戳后同时修改所有节点,您可以在查询中进行分页并使用 SKIP and LIMIT.

MATCH (p:Person)
WHERE p.created_at > 1502882338889 // given a timestamp...
RETURN p
ORDER BY p.created_at
SKIP 1
LIMIT 2